Udap.UI 0.9.14

dotnet add package Udap.UI --version 0.9.14
                    
NuGet\Install-Package Udap.UI -Version 0.9.14
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Udap.UI" Version="0.9.14" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Udap.UI" Version="0.9.14" />
                    
Directory.Packages.props
<PackageReference Include="Udap.UI" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add Udap.UI --version 0.9.14
                    
#r "nuget: Udap.UI, 0.9.14"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package Udap.UI@0.9.14
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=Udap.UI&version=0.9.14
                    
Install as a Cake Addin
#tool nuget:?package=Udap.UI&version=0.9.14
                    
Install as a Cake Tool

Udap.UI

UDAP logo

📦 Nuget Package: Udap.UI

This package provides Razor Pages and static assets for the authentication and consent UI used with Duende IdentityServer and UDAP. It includes pages for login, logout, consent, device authorization, CIBA, and grant management, along with support for UDAP Tiered OAuth flows.

Include this package in a server that already includes the Udap.Server package.

Bring your own UI

The pages are a reference look. Their protocol logic lives in services you can call from your own pages, so a host can replace the markup and styling entirely without copying page models:

builder.Services.AddUdapUI(options =>
{
    options.Login.AllowRememberLogin = false;
    options.Logout.ShowLogoutPrompt = false;
});

// Optional: sign users in against your own identity store instead of Duende TestUsers.
builder.Services.AddTransient<IUdapUserStore, MyUserStore>();
Service Use it for
IUdapLoginService Login page model (providers, UDAP idp hint, local-login rules), credential sign-in, cancel, and SignInUserAsync for an already-verified user (passkey, registration).
IUdapExternalLoginService Tiered OAuth and external OIDC challenge properties; the shared callback that finds or provisions the user and signs them in.
IUdapLogoutService Logout prompt decision, local sign-out with the upstream sign-out scheme, logged-out page context.
IUdapConsentService Consent page context and recording the user's decision. UdapScopeListBuilder builds the permission list for device and CIBA screens too.
IUdapUserStore The user store behind login. Defaults to TestUserStoreAdapter over Duende's TestUserStore.

Service calls return a UdapInteractionResult (redirect, native-client redirect, or show the page with an error); this.ToActionResult(result) converts the redirecting kinds in a PageModel.

The built-in pages use these services too, and still work when AddUdapUI() is not called.

Plain-language permissions

UdapScopeLanguage.Describe(scope) words an OIDC, SMART App Launch (v1/v2) or UDAP scope for the person granting consent, e.g. patient/MedicationDispense.rs reads "Your filled prescriptions: The app can look at and search the medicines pharmacies have filled for you." It builds the wording from the scope's parts (context, FHIR resource type, permissions), so a whole SMART scope catalog reads well without per-scope descriptions, and flags scopes that can change records or reach beyond the patient's own records. Its Technical text gives the breakdown for a "Plain language" / "Technical" switch. The example servers (SecuredControls Auth, SecuredControls Identity) show both.

Product 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. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

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
0.9.14 155 10/5/2026
0.9.13 84 10/4/2026
0.9.12 148 10/3/2026
0.9.11 110 9/20/2026
0.9.9 103 9/20/2026
0.9.8 105 9/20/2026
0.9.7 160 9/14/2026
0.9.6 114 9/11/2026
0.9.5 312 9/10/2026
0.9.5-preview001 99 9/10/2026
0.9.4 148 8/11/2026
0.9.3 179 7/25/2026
0.9.2 137 7/20/2026
0.9.1 179 7/10/2026
0.9.0 141 7/9/2026
0.8.5 169 6/16/2026
0.8.4 142 5/30/2026
0.8.3 175 5/29/2026
0.8.2 150 5/22/2026
0.8.1 147 5/20/2026
Loading failed