![]() |
VOOZH | about |
dotnet add package Indice.Features.Identity.UI --version 8.49.1
NuGet\Install-Package Indice.Features.Identity.UI -Version 8.49.1
<PackageReference Include="Indice.Features.Identity.UI" Version="8.49.1" />
<PackageVersion Include="Indice.Features.Identity.UI" Version="8.49.1" />Directory.Packages.props
<PackageReference Include="Indice.Features.Identity.UI" />Project file
paket add Indice.Features.Identity.UI --version 8.49.1
#r "nuget: Indice.Features.Identity.UI, 8.49.1"
#:package Indice.Features.Identity.UI@8.49.1
#addin nuget:?package=Indice.Features.Identity.UI&version=8.49.1Install as a Cake Addin
#tool nuget:?package=Indice.Features.Identity.UI&version=8.49.1Install as a Cake Tool
A comprehensive Razor Class Library that provides a complete, production-ready identity management UI for ASP.NET Core applications. This library delivers all the essential identity-related user interface components including authentication, registration, profile management, multi-factor authentication, and more.
Authentication & Authorization
User Registration & Onboarding
Password Management
Profile Management
Security Features
dotnet add package Indice.Features.Identity.UI
public void ConfigureServices(IServiceCollection services)
{
services.AddIdentity<User, Role>()
.AddEntityFrameworkStores<IdentityDbContext>()
.AddIdentityUI(options =>
{
// Basic configuration
options.HomePageSlogan = "Welcome to our Digital Services Portal";
options.CopyYear = 2024;
options.EnableRegisterPage = true;
options.EnableForgotPasswordPage = true;
options.AllowRememberLogin = true;
});
}
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
app.UseRouting();
app.UseAuthentication();
app.UseAuthorization();
app.UseEndpoints(endpoints =>
{
endpoints.MapRazorPages();
});
}
services.AddIdentityUI(options =>
{
// Branding & Appearance
options.HomePageSlogan = "Welcome to the {0} Digital Services <strong>Portal</strong>";
options.AvatarColorHex = "1abc9c";
options.EmailLinkColorHex = "1abc9c";
options.HtmlBodyBackgroundCssClass = "gradient-bg";
// Feature Toggles
options.EnableLocalLogin = true;
options.AutoProvisionExternalUsers = true;
options.AutoAssociateExternalUsers = true;
options.EnablePhoneNumberCallingCodes = false;
options.AutomaticSigninAfterRegister = false;
// File Upload Settings
options.PictureUploadSizeLimit = 1024 * 1024 * 5; // 5MB
options.PictureMaxSideSize = 512; // 512px
// Session Management
options.RememberMeLoginDuration = TimeSpan.FromDays(30);
options.ShowLogoutPrompt = true;
options.AutomaticRedirectAfterSignOut = false;
// Custom URLs
options.TermsUrl = "https://example.com/terms";
options.PrivacyUrl = "https://example.com/privacy";
options.ContactUsUrl = "https://example.com/contact";
// Custom Onboarding
options.OnBoardingPage = "/CustomOnboarding/Welcome";
// Homepage Services
options.AddHomepageLink("Admin Panel", "~/admin", "admin-card",
visibilityPredicate: user => user.IsInRole("Admin"));
options.AddHomepageLink("My Dashboard", "~/dashboard", "dashboard-card");
// Event Handlers
options.Events.OnUserRegistering = async context =>
{
// Custom logic during user registration
context.User.CreatedBy = "System";
await Task.CompletedTask;
};
});
The library supports multiple UI frameworks. Choose your preferred theme by organizing your views:
Pages/
├── Bootstrap5/ # Bootstrap 5 theme (default)
│ ├── Login.cshtml
│ ├── Register.cshtml
│ └── ...
├── Tailwind/ # Tailwind CSS theme
│ ├── Login.cshtml
│ ├── Register.cshtml
│ └── ...
You can override any static asset by placing a file with the same path in your host application's wwwroot:
wwwroot/
├── css/
│ └── bootstrap.css # Overrides library's bootstrap.css
├── js/
│ └── app.js # Additional JavaScript
└── images/
└── logo.png # Custom logo
Override specific pages by creating them in your host application:
UIFramework folder /Pages/Bootstrap5/Login will become /Pages/Login.Pages/
├── Login.cshtml # Custom login page
├── Register.cshtml # Custom registration page
Themes folder to create a conditional version for a spesific client.Pages/
├── Themes/
│ ├── MyApplicationClientLogin.cshtml # Custom login page
│ └── MyApplicationClientRegister.cshtml # Custom registration page
In case (2) you will also need to set the client_id by creating the corresponding PageModel and decorating it with the [IdentityUIClient("MyApplicationClient")] attribute.
Email templates can be customized by placing files in your application:
Pages/
├── Shared/
│ ├── EmailConfirmYourEmail.cshtml
│ ├── EmailForgotPassword.cshtml
│ └── EmailSecurityNotification.cshtml
Indice.Features.Identity.UI/
├── Models/ # View models and input models
├── Pages/ # Razor pages organized by theme
│ ├── Bootstrap5/ # Bootstrap 5 theme
│ ├── Tailwind/ # Tailwind CSS theme
│ └── Shared/ # Shared layouts and components
├── Validators/ # FluentValidation validators
├── ViewComponents/ # Reusable view components
├── TagHelpers/ # Custom tag helpers
├── EventHandlers/ # Event handling for notifications
├── Localization/ # Localization resources
├── Filters/ # Custom action filters
└── wwwroot/ # Static web assets
├── css/ # Compiled stylesheets
├── js/ # JavaScript libraries
├── lib/ # Third-party libraries
└── images/ # Images and icons
BasePageModel for common functionality| Package | Version | Purpose |
|---|---|---|
| Indice.Features.Identity.Core | Latest | Core identity functionality |
| FluentValidation.AspNetCore | 11.3.1 | Form validation |
| HtmlAgilityPack | 1.12.3 | HTML parsing and manipulation |
| Bootstrap | 5.3.6 | UI framework |
| jQuery | 3.7.1 | JavaScript functionality |
| Font Awesome | 6.7.2 | Icons |
| Tailwind CSS | 3.4.17 | Utility-first CSS framework |
/Login - User login with external providers/Logout - Logout confirmation and processing/LoggedOut - Post-logout confirmation/Register - User registration form/ForgotPassword - Password reset request/ForgotPasswordConfirmation - Password reset email sent confirmation/ConfirmEmail - Email address confirmation/ConfirmEmailChange - Email change confirmation/Profile - User profile management dashboard/ChangePassword - Password change form/AddEmail - Add additional email address/AddPhone - Add phone number/VerifyPhone - Phone number verification/Mfa - MFA challenge page/MfaOnboarding - MFA setup wizard/MfaOnboardingAddPhone - Add phone for MFA/MfaOnboardingVerifyPhone - Verify phone for MFA/MfaOnboardingAddEmail - Add email for MFA/MfaOnboardingVerifyEmail - Verify email for MFA/Consent - OAuth consent page/Grants - Review active grants and sessions/AcceptTerms - Terms and conditions acceptance/Associate - External account association/Home - Landing page with service links/Error - General error page/Error40X - 404/403 error pages/Privacy - Privacy policy page/Terms - Terms and conditions page/Challenge - External authentication challengeThe library includes automated build processes for static assets:
{
"scripts": {
"gulp": "gulp",
"npm:install": "npm install"
}
}
services.AddIdentityUI(options =>
{
options.Events.OnUserRegistering = async context =>
{
var user = context.User;
var httpContext = context.HttpContext;
// Set default user properties
user.Department = "General";
user.IsActive = true;
user.CreatedDate = DateTime.UtcNow;
// Log registration attempt
var logger = httpContext.RequestServices.GetService<ILogger<Startup>>();
logger.LogInformation("User {Email} is registering", user.Email);
await Task.CompletedTask;
};
});
services.AddIdentityUI(options =>
{
options.AddHomepageLink("HR Portal", "https://hr.company.com", "hr-card",
imageSrc: "/images/hr-icon.png",
visibilityPredicate: user => user.HasClaim("department", "HR"));
options.AddHomepageLink("Finance Dashboard", "~/finance", "finance-card",
visibilityPredicate: user => user.IsInRole("Finance"));
});
This library is part of the Indice Platform ecosystem. For contributions, please refer to the main platform repository guidelines.
This project is licensed under the MIT License - see the main platform repository for details.
For more information and advanced scenarios, please refer to the Indice Platform Documentation
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net8.0 net8.0 is compatible. net8.0-android net8.0-android was computed. net8.0-browser net8.0-browser was computed. net8.0-ios net8.0-ios was computed. net8.0-maccatalyst net8.0-maccatalyst was computed. net8.0-macos net8.0-macos was computed. net8.0-tvos net8.0-tvos was computed. net8.0-windows net8.0-windows was computed. net9.0 net9.0 is compatible. net9.0-android net9.0-android was computed. net9.0-browser net9.0-browser was computed. net9.0-ios net9.0-ios was computed. net9.0-maccatalyst net9.0-maccatalyst was computed. net9.0-macos net9.0-macos was computed. net9.0-tvos net9.0-tvos was computed. net9.0-windows net9.0-windows was computed. net10.0 net10.0 is compatible. net10.0-android net10.0-android was computed. net10.0-browser net10.0-browser was computed. net10.0-ios net10.0-ios was computed. net10.0-maccatalyst net10.0-maccatalyst was computed. net10.0-macos net10.0-macos was computed. net10.0-tvos net10.0-tvos was computed. net10.0-windows net10.0-windows was computed. |
This package is not used by any NuGet packages.
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 8.49.1 | 116 | 6/10/2026 |
| 8.49.0 | 124 | 6/5/2026 |
| 8.48.1 | 141 | 6/2/2026 |
| 8.48.0 | 122 | 5/28/2026 |
| 8.47.3 | 168 | 5/26/2026 |
| 8.47.2 | 111 | 5/26/2026 |
| 8.47.1 | 203 | 5/22/2026 |
| 8.47.0 | 169 | 5/14/2026 |
| 8.47.0-rc06 | 105 | 5/15/2026 |
| 8.47.0-rc05 | 103 | 5/14/2026 |
| 8.47.0-rc04 | 102 | 5/14/2026 |
| 8.47.0-rc03 | 93 | 5/14/2026 |
| 8.47.0-rc02 | 95 | 5/14/2026 |
| 8.47.0-rc01 | 98 | 5/13/2026 |
| 8.46.3 | 152 | 5/11/2026 |
| 8.46.2 | 131 | 5/7/2026 |
| 8.46.1 | 103 | 5/7/2026 |
| 8.46.0 | 115 | 5/5/2026 |
| 8.45.0 | 146 | 4/30/2026 |
| 8.44.1 | 162 | 4/27/2026 |