Substantive.AspNetCore.Authentication.QuickUI 9.17.34-build20260919r3

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.
9
Substantive.Foundation.Backends
A metapackage contains all Substantive backend building blocks.
10
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.
15
Substantive.Foundation.Backends
A metapackage contains all Substantive backend building blocks.
16
Substantive.Foundation.Backends
A metapackage contains all Substantive backend building blocks.
21
Substantive.Foundation.Backends
A metapackage contains all Substantive backend building blocks.
24
Substantive.Metapackage.AspNetCoreServer
A metapackage contains all Substantive ASP.NET Core server-side packages.
9
Substantive.Metapackage.Backends
A metapackage contains all Substantive backend building blocks.
9

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