Awesome Open Source
Awesome Open Source


Build Status NuGet

Find the corresponding NuGet package for your DBMS (Eg: Identity.Dapper.SqlServer).

To configure the DBMS connection, you can add a DapperIdentity and a DapperIdentityCryptography section to your configuration file like this:

"DapperIdentity": {
    "ConnectionString": "Connection string of your database",
    "Username": "user",
    "Password": "123"
"DapperIdentityCryptography": {
    "Key": "Base64 32 bytes key",
    "IV": "Base64 16 bytes key"

Key: "E546C8DF278CD5931069B522E695D4F2" (32 Bytes)
Base64 Encoded Key: "RTU0NkM4REYyNzhDRDU5MzEwNjlCNTIyRTY5NUQ0RjI="

IV: "SomeReallyCoolIV" (16 Bytes)
Base64 Encoded IV: "U29tZVJlYWxseUNvb2xJVg=="

Alternatively, you can use ConnectionStrings default section:

"ConnectionStrings": {
    "DefaultConnection": "Connection string of your database"

Or you can use the User Secrets commands:

dotnet user-secrets set DapperIdentity:ConnectionString "Connection string of your database"
dotnet user-secrets set DapperIdentity:Password "123"
dotnet user-secrets set DapperIdentity:Username "user"

dotnet user-secrets set DapperIdentityCryptography:Key "Base64 32 bytes key"
dotnet user-secrets set DapperIdentityCryptography:IV "Base64 16 bytes key"

The DapperIdentity:Password can be encrypted with AES256 using the KEY and IV provided.

On Startup.cs file, go to ConfigureServices and add the following lines:


services.AddIdentity<DapperIdentityUser, DapperIdentityRole<int>>()



Where T for the method ConfigureDapperConnectionProvider is DBMSNameConnectionProvider (eg: SqlServerConnectionProvider) and T for the method AddDapperIdentityFor is DBMSNameConfiguration (eg: SqlServerConfiguration).

If you want to use Transactions to all methods of Identity, you'll have to add .ConfigureDapperIdentityOptions(new DapperIdentityOptions { UseTransactionalBehavior = true }) below ConfigureDapperIdentityCryptography(Configuration.GetSection("DapperIdentityCryptography"));

And inside your controller, you'll have to insert on constructor a DapperUserStore<TUser, TKey, TUserRole, TRoleClaim, TUserClaim, TUserLogin, TRole> variable, like this:

private readonly DapperUserStore<CustomUser, int, DapperIdentityUserRole<int>, DapperIdentityRoleClaim<int>, DapperIdentityUserClaim<int>, DapperIdentityUserLogin<int>, CustomRole> _dapperStore;


 public ManageController(IUserStore<CustomUser> dapperStore)
            _dapperStore = dapperStore as DapperUserStore<CustomUser, int, DapperIdentityUserRole<int>, DapperIdentityRoleClaim<int>, DapperIdentityUserClaim<int>, DapperIdentityUserLogin<int>, CustomRole>;

And after all operations, you'll have to call DapperUserStore.SaveChanges() method, otherwise your changes will be rollbacked.

Currently, only SQL Server, PostgreSQL and MySQL are supported. We plan support for Oracle when the company release the .NET Core version for their System.Data implementation.

Using Guid as Entity key

Specify the

services.AddIdentity<DapperIdentityUser<Guid>, DapperIdentityRole<Guid>>()
        .AddDapperIdentityFor<T, Guid>();

Changing the default schema (SqlServer)

Pass a custom class that inherits from SqlServerConfiguration (or other)

public class CustomSqlServerConfiguration : SqlServerConfiguration
    public CustomSqlServerConfiguration()
        base.SchemaName = "[customSchema]";

And add it with


Alternative Project Comparisons
Related Awesome Lists
Top Programming Languages

Get A Weekly Email With Trending Projects For These Topics
No Spam. Unsubscribe easily at any time.
C Sharp (178,460
Identity (5,902
Asp Net Core (3,699
Asp Net Mvc (1,935
Dbms (1,055
Dapper (680
Aspnetcoreidentity (68