ASP.NET Core 6.0 - Demos And Utilities Project

Ken Haggerty
Created 12/23/2021 - Updated 12/23/2021 21:22 GMT

The ASP,NET Core 6.0 - Demos And Utilities Project (DAUP) is a collection of demos and utilities I used to develop a lot of the features for KenHaggerty. Com and the research projects. I will assume you have downloaded the FREE ASP.NET Core 6.0 - Demos And Utilities Project.

Demos And Utilities Project and Article Series

I created the DAUP by migrating the ASP.NET Core 3.1 - FIDO Utilities Project (FUP) to ASP.NET Core 6.0. The FUP included many of the utilities I use in the ASP.NET Core 6.0 - Users Without Passwords Project (UWPP). I added an In Memory database and lists of fruit, vegetable and spice names for records to demonstrate table functions like paging, filtering, and sorting. The DAUP implements the SMTP Settings Tester, located in the authorized Pages > Admin folder. See ASP.NET Core 5.0 - SMTP Settings Tester. The DAUP implements the KenHaggerty. Com. SingleUser. Net6. See ASP.NET Core 6.0 - SingleUser NuGet Package. Registered users can download the source code for free on KenHaggerty. Com at Manage > Assets. Details, screenshots, and related articles can be found at ASP.NET Core 6.0 - Demos And Utilities Project. The details page includes the version change log.

The DAUP has been upgraded to ASP.NET Core 6.0 with Visual Studio 2022. I migrated the Startup.cs to top-level statements in Program.cs. I also implemented global usings and file scoped namespaces. I have enabled the nullable context and mitigated all warnings and issues. I have updated the DAUP with Twitter Bootstrap v5. See ASP.NET Core 5.0 - Migrate To Bootstrap v5. This project implements Bootstrap Native.

The Table Function demo with an In Memory database implements the ASP.NET Core 6.0 version of the ASP.NET Core 3.1 - Table Functions Project. Lists of fruit, vegetable and spice names for records demonstrate table functions like paging, filtering, and sorting.

Table Functions Demo
Table Functions Demo Mobile

The Password Hasher demo implements the ASP.NET Core 6.0 version of the ASP.NET Core 3.1 - Password Hasher, one of my most popular articles.

Password Hasher
Password Hasher Mobile

The FIDO processes involve interaction between the client, authenticator, and user without the server. A message to inform the user something went wrong, and they need to start over is the most important. This oops message needs to prevent the user from continuing on the current page and provide a link to the start over page. The first oops message in the Users Without Passwords Project was a Bootstrap-jQuery modal with no dismiss button, a link to start over, a 'static' backdrop and keyboard=false. I liked it enough to develop a success message to present before automatically navigating to the goal. I liked that enough to develop message-modal.js with a showMessageModal() function which dynamically creates the html. I liked that enough to develop a ajax-modal.js with showLoadingModal() and showResponseModal() functions. I liked that enough to develop a confirm-modal.js with a showConfirmModal() function which executes a confirmed callback function when the confirm button is clicked. I liked that enough to develop a dynamic-modals.js which bundles message-modal.js, ajax-modal.js, and confirm-modal.js. See ASP.NET Core 3.1 - Message Modal.

The Admin > Index page implements the showLoadingModal(), showResponseModal(), and showConfirmModal() functions with mock ajax and confirm server functions. The DAUP includes a Message Modal Generator which dynamically creates the minimal signature for the showMessageModal() function with examples.

Message Modal Generator
Message Modal Generator Mobile
Single User Login
Single User Login Mobile

The Admin Page implements email tests with the updated EmailSender. The Admin Page can test the Error page and the ExceptionEmailerMiddleware which send error emails when the AppSettings. DebugExceptionHandling is set to true. The Admin Page implements mock ajax and confirm server functions to test the dynamic-modals.js functions. A Field Update control from the Ajax Postback Control demo is also implemented.

Admin Index Page
Admin Index Page Mobile

The DAUP implements the ASP.NET Core 6.0 version of the ASP.NET Core 5.0 - SMTP Settings Tester, located in the authorized Pages > Admin folder.

SMTP Settings Tester User Secrets
SMTP Settings Tester Development

The DAUP implements a cookie policy banner and CheckConsentNeeded from Microsoft. AspNetCore. CookiePolicy to request user consent for non-essential cookies like screen size and time offset. The DAUP includes a sample privacy policy page with a revoke consent function. See The 2020 Guide to Google Analytics and GDPR Compliance.

Sample Privacy Policy with Cookie Banner
Sample Privacy Policy with Revoke Consent

FIDO authenticators require a unique code called a challenge from the server. The client transforms the challenge to a UInt8Array expected by the authenticator. The client sends the response from the authenticator to the server. The response includes the challenge which is decoded from the UInt8Array to verify a match to the server's original code. If the challenge is verified the response is decoded and verified. If the response is verified, it is stored, and action is implemented like create or login the user.

I simulate an FIDO authenticator by converting the challenge from the server to a UInt8Array before posting the serialized challenge array to the callback. The callback decodes the posted challenge and compares it to the original code we stored in TempData. The DAUP includes a Challenge demo which implements the Cookie TempDataProvider and UInt8Array conversion. See ASP.NET Core 3.1 - Round Trip Challenge. I added the TempData Demo which demonstrates the TempData attribute and ITempDataDictionary implemented in the UWPP. See ASP.NET Core 5.0 - The TempData Challenge.

The Challenge Demo
The TempData Demo

The updated AES Cipher demo implements the AesCrypto class. The DAUP does not require SQL Server but includes an encrypted connection string demonstration in Program.cs and appsettings.json.

AES Cipher
AES Cipher Mobile

The DAUP implements Truthy Or Falsy and Copy and Paste Demos See ASP.NET Core 3.1 - Copy and Paste.