OutWit.Identity.Blazor
0.0.0-alpha.0
See the version list below for details.
dotnet add package OutWit.Identity.Blazor --version 0.0.0-alpha.0
NuGet\Install-Package OutWit.Identity.Blazor -Version 0.0.0-alpha.0
<PackageReference Include="OutWit.Identity.Blazor" Version="0.0.0-alpha.0" />
<PackageVersion Include="OutWit.Identity.Blazor" Version="0.0.0-alpha.0" />
<PackageReference Include="OutWit.Identity.Blazor" />
paket add OutWit.Identity.Blazor --version 0.0.0-alpha.0
#r "nuget: OutWit.Identity.Blazor, 0.0.0-alpha.0"
#:package OutWit.Identity.Blazor@0.0.0-alpha.0
#addin nuget:?package=OutWit.Identity.Blazor&version=0.0.0-alpha.0&prerelease
#tool nuget:?package=OutWit.Identity.Blazor&version=0.0.0-alpha.0&prerelease
OutWit.Identity.Blazor
Blazor WebAssembly auth-side bits for apps integrated with WitIdentity.
This package sits on top of the generic
OutWit.Shared.Blazor.Shell
admin shell and adds the WitIdentity-specific parts: OIDC login UI,
tenant manifest types, and a thin shell-layout wrapper that pre-fills
branding from /branding.json.
Renamed from
OutWit.Identity.Sharedin 2.0. The generic shell pieces (AppShellLayout, theme, M3 CSS,AppNotFound,DisplayUtils,LoginMenuItem) now live inOutWit.Shared.Blazor.Shellso non-Identity products can use them without pulling WitIdentity in.
Contents
IdentityShellLayout— thin wrapper around the genericAppShellLayoutthat hydratesTitle,Header,LogoUrl…from the injectedBrandingOptionsand slots in<LoginDisplay />+<AppShellFooter />. Use this from yourMainLayout.razorand you only have to supply navigation items.AppRoot— root component withCascadingAuthenticationState,Router, andAuthorizeRouteView.LoginDisplay— login / logout button with user avatar + dropdown menu populated fromLoginDisplayOptions.MenuItems(theLoginMenuItemrecord itself lives inOutWit.Shared.Blazor.Shell.Model).LoginRedirect— sends unauthorised users through the OIDC login flow.AppShellFooter— pinned bottom-right server version + environment badge.Brandingnamespace —BrandingOptions,IOidcClientSettings,OidcClientSettings,SystemInfo,TenantManifest(the wire types that match the server'sGET /branding.jsonresponse).- CSS at
_content/OutWit.Identity.Blazor/css/—m3-auth.css(login / change-password page styling) andapp-shell-footer.css(version badge).
Installation
dotnet add package OutWit.Identity.Blazor
This transitively brings in OutWit.Shared.Blazor.Shell, MudBlazor, and
the OIDC authentication libraries.
Usage
In your Blazor WASM Program.cs:
// Fetch the tenant manifest (branding + OIDC client config + server version)
// from the WitIdentity host. Registers BrandingOptions and IOidcClientSettings
// as singletons available via DI throughout the app.
var manifest = await builder.Services.AddIdentityShellTenant(builder.HostEnvironment.BaseAddress);
// Wire up OIDC authentication using values from the manifest. Pass
// `fallbackAuthority` for self-hosted scenarios where the manifest's
// Authority is empty (the identity server itself loading its admin UI).
builder.Services.AddIdentityShellAuth(manifest.Oidc);
// MudBlazor services + login menu.
builder.Services.AddIdentityShellServices(options =>
{
options.MenuItems.Add(new LoginMenuItem("Home", "/", Icons.Material.Outlined.Home));
});
In index.html:
<link rel="stylesheet" href="_content/OutWit.Shared.Blazor.Shell/css/m3-tokens.css" />
<link rel="stylesheet" href="_content/OutWit.Shared.Blazor.Shell/css/m3-appbar.css" />
<link rel="stylesheet" href="_content/OutWit.Shared.Blazor.Shell/css/m3-nav.css" />
<link rel="stylesheet" href="_content/OutWit.Shared.Blazor.Shell/css/shell.css" />
<link rel="stylesheet" href="_content/OutWit.Identity.Blazor/css/m3-auth.css" />
<link rel="stylesheet" href="_content/OutWit.Identity.Blazor/css/app-shell-footer.css" />
<link rel="stylesheet" href="_content/MudBlazor.FontIcons.MaterialSymbols/css/font.min.css" />
In MainLayout.razor:
@inherits LayoutComponentBase
<IdentityShellLayout>
<NavigationItems>
<MudNavLink Href="/" Icon="@Icons.Material.Outlined.Dashboard">Home</MudNavLink>
</NavigationItems>
<ChildContent>@Body</ChildContent>
</IdentityShellLayout>
The WitIdentity server publishes the manifest at GET /branding.json
(anonymous, Cache-Control: no-cache, must-revalidate). The shape
matches the TenantManifest class in this package, so consuming apps
deserialise straight into it.
Built with MudBlazor.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net10.0
- Microsoft.AspNetCore.Components.WebAssembly (>= 10.0.8)
- Microsoft.AspNetCore.Components.WebAssembly.Authentication (>= 10.0.8)
- MudBlazor (>= 9.4.0)
- MudBlazor.FontIcons.MaterialSymbols (>= 1.4.0)
- OutWit.Common (>= 1.3.2)
- OutWit.Common.MVVM.Blazor (>= 2.0.2)
- OutWit.Shared.Blazor.Shell (>= 1.0.0)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 2.0.1 | 96 | 5/15/2026 |
| 0.0.0-alpha.0 | 46 | 5/15/2026 |