Substantive.AspNetCore.Authentication.QuickUI 9.17.17-build20260129r1

AuthenticationQuickUI

AuthenticationQuickUI is a lightweight library that provides a minimal authentication UI for ASP.NET Core applications that use Razor Pages. It is built on top of ASP.NET Core Identity and uses an in-memory database for credential storage, making it suitable for internal tools, admin portals, and non-public workloads where simplicity is preferred over persistence.

Installation

Follow these steps to integrate AuthenticationQuickUI into your ASP.NET Core application.

1. Add configuration to appsettings.json

First, you need to add the necessary configuration for AuthenticationQuickUI in your appsettings.json file. This configuration allows you to customize the library according to your needs.

Add the following configuration:

  "AuthenticationQuickUIOptions": {
    "ApplicationTitle": "Login Title",
    "AuthenticationUsers": [
      {
        "Username": "admin1",
        "Password": "somepassword"
      },
      {
        "Username": "admin2",
        "Password": "somepassword"
      },
    ]
  },

⚠️ The in-memory store is reset on application restart. This library is not intended for scenarios that require durable user storage.

2. Register services in Program.cs

In your Program.cs, load the configuration from appsettings.json and add the necessary dependencies.

// Load configuration
AuthenticationQuickUIOptions quickUiOptions = new();
builder.Configuration.GetSection(nameof(AuthenticationQuickUIOptions)).Bind(quickUiOptions);

// Register AuthenticationQuickUI services
builder.Services.AddAuthenticationQuickUI(quickUiOptions.ToAction());

3. Configure the middleware pipeline


// use AuthenticationQuickUI
app.UseAuthenticationQuickUI(quickUiOptions.ToAction());

ℹ️ The middleware must be registered after routing so endpoint metadata (such as [AllowAnonymous]) is available.

Security considerations

AuthenticationQuickUI is configured to be secure-by-default:

  • Authentication cookies are marked as HttpOnly
  • Cookies are sent over HTTPS only (SecurePolicy = Always)
  • SameSite=Strict is enforced to reduce CSRF risk
  • Cookie names and paths are scoped per application to avoid conflicts behind reverse proxies (for example YARP)

If the application is hosted behind a reverse proxy with a path base, configure HostPathBase accordingly.

Reverse proxy support

When running behind a reverse proxy that rewrites paths (such as YARP), set:

"HostPathBase": "/my-app"

This ensures:

  • Redirects to the sign-in page use a consistent base path
  • Authentication cookies are correctly scoped and isolated

FAQs and Troubleshoots

Q: Is this intended for production use?
A: It is intended for internal or low-risk applications. It is not a replacement for a full identity provider.

Showing the top 20 packages that depend on Substantive.AspNetCore.Authentication.QuickUI.

Packages Downloads
Substantive.Foundation.Backends
A metapackage contains all Substantive backend building blocks.
3
Substantive.Foundation.Backends
A metapackage contains all Substantive backend building blocks.
4
Substantive.Foundation.Backends
A metapackage contains all Substantive backend building blocks.
6
Substantive.Foundation.Backends
A metapackage contains all Substantive backend building blocks.
7
Substantive.Foundation.Backends
A metapackage contains all Substantive backend building blocks.
8
Substantive.Foundation.Backends
A metapackage contains all Substantive backend building blocks.
9
Substantive.Foundation.Backends
A metapackage contains all Substantive backend building blocks.
11
Substantive.Foundation.Backends
A metapackage contains all Substantive backend building blocks.
14
Substantive.Foundation.Backends
A metapackage contains all Substantive backend building blocks.
16
Substantive.Metapackage.AspNetCoreServer
A metapackage contains all Substantive ASP.NET Core server-side packages.
3
Substantive.Metapackage.Backends
A metapackage contains all Substantive backend building blocks.
3

Version Downloads Last updated
9.17.21-build20260204R1 0 02/04/2026
9.17.20-build20260203R1 0 02/03/2026
9.17.19-build20260130R1 7 01/30/2026
9.17.18-build20260129R1 19 01/29/2026
9.17.17-build20260129R1 18 01/29/2026
9.17.17-build20260128R1 18 01/28/2026
9.17.16-build20260127R2 24 01/27/2026
9.17.16-build20260123R1 1 01/23/2026
9.17.15-build20260122R1 1 01/22/2026
9.17.14-build20260122R2 1 01/22/2026
9.17.14-build20260122R1 1 01/22/2026
9.17.14-build20260121R1 1 01/21/2026
9.17.13-build20260121R1 1 01/21/2026
9.17.12-build20260120R1 3 01/20/2026
9.17.11-build20260120R1 3 01/20/2026
9.17.10-build20260120R1 3 01/20/2026
9.17.9-build20260119R1 1 01/19/2026
9.17.8-build20260119R1 1 01/19/2026
9.17.7-build20260115R1 1 01/15/2026
9.17.6-build20260115R1 1 01/15/2026
9.17.5-build20260119R1 1 01/19/2026
9.17.5-build20260115R1 1 01/15/2026
9.17.4-build20260115R1 1 01/15/2026
9.17.3-build20260115R1 1 01/15/2026
9.17.2-build20260115R1 1 01/15/2026
9.17.2-build20260113R1 1 01/13/2026
9.17.1-build20251231R2 1 12/31/2025
9.17.1-build20251230R2 1 12/30/2025
9.17.1-build20251230R1 1 12/30/2025
9.17.0-build20251229R2 1 12/29/2025
9.17.0-build20251229R1 1 12/29/2025
9.17.0-build20251226R1 1 12/26/2025
9.17.0-build20251225R1 1 12/25/2025
9.16.0-build20251224R1 1 12/24/2025
9.15.3-build20251224R1 1 12/24/2025
9.15.2-build20251224R1 1 12/24/2025
9.15.0-build20251224R1 1 12/24/2025
9.14.4-build20251224R1 1 12/24/2025
9.14.2-build20251224R1 1 12/24/2025
9.14.1-build20251224R1 2 12/24/2025
9.1.0-build20251218R1 1 12/18/2025
9.1.0-build20251216R2 29 12/16/2025
9.1.0-build20251216R1 4 12/16/2025
9.1.0-build20251212R1 3 12/12/2025
9.1.0-build20251210R1 3 12/10/2025
9.1.0-build20251202R2 5 12/02/2025
9.1.0-build20251202R1 3 12/02/2025
9.1.0-build20251201R1 2 12/01/2025
9.0.5-build20251117R1 1 11/17/2025
9.0.5-build20251110R1 6 11/10/2025
9.0.5-build20251103R1 5 11/03/2025
9.0.5-build20251030R1 5 10/30/2025
9.0.5-build20251028R1 3 10/28/2025
9.0.5-build20251016R1 1 10/16/2025
9.0.5-build20250925R2 5 09/25/2025
9.0.5-build20250924R1 2 09/24/2025
9.0.5-build20250910R1 1 09/10/2025
9.0.5-build20250908R1 7 09/08/2025
9.0.5-build20250827R1 1 08/27/2025
9.0.5-build20250825R1 6 08/25/2025
9.0.0-build20250818R2 9 08/18/2025
9.0.0-build20250818R1 3 08/18/2025
9.0.0-build20250815R1 6 08/15/2025
9.0.0-build20250814R1 2 08/14/2025
9.0.0-build20250722R3 7 07/22/2025
9.0.0-build20250714R3 7 07/14/2025
9.0.0-build20250714R2 3 07/14/2025
9.0.0-build20250714R1 2 07/14/2025
9.0.0-build20250710R1 5 07/10/2025
9.0.0-build20250707R2 12 07/07/2025
9.0.0-build20250707R1 3 07/07/2025
9.0.0-build20250629R1 8 06/29/2025
9.0.0-build20250626R2 5 06/26/2025
9.0.0-build20250626R1 2 06/26/2025
9.0.0-build20250623R1 7 06/23/2025
9.0.0-build20250621R1 11 06/21/2025
1.1.0-build20251224R1 1 12/24/2025