Spryer.AspNetCore.Identity

ASP.NET Core Identity storage provider with non-IQueryable stores


Keywords
aspnetcore, identity, aspnetcore-identity, dapper, mysql, postgresql, sql-server, sqlite
License
MIT
Install
Install-Package Spryer.AspNetCore.Identity -Version 0.1.0-beta

Documentation

Spryer.AspNetCore.Identity

ASP.NET Core Identity storage providers that use Dapper.

Packages

Package Version Downloads
Spryer NuGet Downloads
Spryer.AspNetCore.Identity NuGet Downloads
Spryer.AspNetCore.Identity.SqlServer NuGet Downloads
Spryer.AspNetCore.Identity.Sqlite NuGet Downloads

Usage

public sealed class AppUser : IdentityUser<Guid>
{
    public AppUser()
    {
        // default Identity UI uses this ctor when registering new users
        this.Id = Guid.NewGuid();
        this.SecurityStamp = Guid.NewGuid().ToString();
    }
}

public sealed class AppRole : IdentityRole<Guid>
{
    public AppRole()
    {
        // default Identity UI uses this ctor when creating new roles
        this.Id = Guid.NewGuid();
    }
}

// Program.cs

var connectionString = builder.Configuration.GetConnectionString("DefaultConnection") ??
    throw new InvalidOperationException("Connection string 'DefaultConnection' not found.");

builder.Services.AddSingleton(_ => SqlClientFactory.Instance.CreateDataSource(connectionString));

builder.Services
    .AddIdentity<AppUser, AppRole>(options => options.SignIn.RequireConfirmedAccount = true)
    .AddDapperStores(options => 
    {
        options.UseSqlServer();
    })
    .AddDefaultUI()
    .AddDefaultTokenProviders();