🚀 Start a seamless authentication experience with LiteDB.Identity 🚀
The revolutionary implementation of ASP.NET Core Identity tailored for the LiteDB database engine. LiteDB.Identity will provide quick creation of login, registration, roles, claims, and token functionality for web applications.
💡This isn't just a tool - it's your passport to an efficient authentication experience. 💡
Latest versions supports:
- LiteDB 5.0.21
- .NET 8 (8.0.11)
- .NETSTANDARD 2.1
- Microsoft.Extensions.Identity.Core 8.0.11
- Microsoft.Extensions.Identity.Stores 8.0.11
If you have found my contributions to the projects helpful, consider buying me a coffee to fuel my efforts :)
Please install latest version of LiteDB.Identity using NuGet:
Install-Package LiteDB.Identity
For ASP.NET Core 8.0.11:
Install-Package LiteDB.Identity -Version 1.0.8.1
For ASP.NET Core 8.0.0:
Install-Package LiteDB.Identity -Version 1.0.8
Next, in your Startup.cs file add reference to namespace:
using LiteDB.Identity.Extensions;
Add default LiteDb.Identity implementation in Program.cs file:
For ASP.NET Core 8 :
using Microsoft.AspNetCore.Identity;
using LiteDB.Identity.Extensions;
using LiteDB.Identity.Models;
var builder = WebApplication.CreateBuilder(args);
// Add services to the container.
var connectionString = builder.Configuration.GetConnectionString("DefaultConnection");
builder.Services.AddLiteDBIdentity(connectionString);
builder.Services.AddDefaultIdentity<LiteDbUser>();
builder.Services.AddControllersWithViews();
var app = builder.Build();
// Configure the HTTP request pipeline.
if (app.Environment.IsDevelopment())
{
//app.UseMigrationsEndPoint();
}
else
{
app.UseExceptionHandler("/Home/Error");
// The default HSTS value is 30 days. You may want to change this for production scenarios, see https://aka.ms/aspnetcore-hsts.
app.UseHsts();
}
app.UseHttpsRedirection();
app.UseStaticFiles();
app.UseRouting();
app.UseAuthorization();
app.MapControllerRoute(
name: "default",
pattern: "{controller=Home}/{action=Index}/{id?}");
app.MapRazorPages();
app.Run();
For ASP.NET Core 6 and 7 :
using LiteDB.Identity.Extensions;
using Microsoft.AspNetCore.Identity;
var builder = WebApplication.CreateBuilder(args);
// Add Identity services to the container.
var connectionString = builder.Configuration.GetConnectionString("DefaultConnection");
builder.Services.AddLiteDBIdentity(connectionString).AddDefaultTokenProviders().AddDefaultUI();
//...
builder.Services.AddControllersWithViews();
var app = builder.Build();
//...
app.UseHttpsRedirection();
app.UseStaticFiles();
app.UseRouting();
app.UseAuthentication();
app.UseAuthorization();
app.MapControllerRoute(
name: "default",
pattern: "{controller=Home}/{action=Index}/{id?}");
app.MapRazorPages();
app.Run();
For ASP.NET Core 3.1:
public void ConfigureServices(IServiceCollection services)
{
string connectionString = Configuration.GetConnectionString("IdentityLiteDB");
services.AddLiteDBIdentity(connectionString).AddDefaultTokenProviders().AddDefaultUI();
services.AddControllersWithViews();
services.AddRazorPages();
}
NOTE: appsettings.json should contains connection string to your LiteDB file. For more implementation details please refer to sample project.
Following interfaces has been implemented on :
- UserStore :
public class UserStore<TUser, TRole, TUserRole, TUserClaim, TUserLogin, TUserToken> :
IUserLoginStore<TUser>,
IUserStore<TUser>,
IUserRoleStore<TUser>,
IUserClaimStore<TUser>,
IUserPasswordStore<TUser>,
IUserSecurityStampStore<TUser>,
IUserEmailStore<TUser>,
IUserLockoutStore<TUser>,
IUserPhoneNumberStore<TUser>,
IQueryableUserStore<TUser>,
IUserTwoFactorStore<TUser>,
IUserAuthenticationTokenStore<TUser>,
IUserAuthenticatorKeyStore<TUser>,
IUserTwoFactorRecoveryCodeStore<TUser>
- RoleStore :
public class RoleStore<TRole, TRoleClaim> : IQueryableRoleStore<TRole>,
IRoleStore<TRole>,
IRoleClaimStore<TRole>
- Great for small and medium size website application based on:
- ASP.NET Core MVC,
- Blazor Server,
- ASP.NET Core WebPages,
- Quick implementation of Authentication and Authorization mechanism for WebAPIs.
- LiteDB - https://www.litedb.org/
- LiteDB Identity Async - https://github.com/devinSpitz/LiteDB.Identity.Async
- LiteDB Github - https://github.com/mbdavid/LiteDB
- AspNetCore Identity - Introduction
- AspNetCore Identity Github - https://github.com/dotnet/aspnetcore/tree/master/src/Identity