Identity.Dapper

其他类别 2025-08-20

Identity.Dapper

查找DBMS的相应Nuget软件包(例如: Identity.Dapper .sqlserver)。

要配置DBMS连接,您可以将DapperIdentityDapperIdentityCryptography部分添加到您的配置文件中:

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

例子:
键:“ E546C8DF278CD5931069B522E695D4F2”(32个字节)
base64编码键:“ rtu0nkm4reyynzhdrdu5mzewnjlcntiyrty5nuq0rji =” =“”

IV:“ somereallycooliv”(16个字节)
base64编码IV:“ u29tzvjlywxseunvb2xjvg ==”

另外,您可以使用connectionsstrings默认部分:

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

或者,您可以使用用户秘密命令:

 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"

使用密钥和IV提供的AES256可以使用DapperIdentity:密码加密。

startup.cs文件上,转到configureservices并添加以下行:

>() .AddDapperIdentityFor() .AddDefaultTokenProviders();">
 services . ConfigureDapperConnectionProvider < T > ( Configuration . GetSection ( "DapperIdentity" ) )
        . ConfigureDapperIdentityCryptography ( Configuration . GetSection ( "DapperIdentityCryptography" ) ) ;

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

或者

 services . ConfigureDapperConnectionProvider < T > ( Configuration . GetSection ( "ConnectionStrings" ) )

其中t用于配置ConfigureDapperConnectionProvider t是DBMSNameConnectionProvider (例如: SqlServerConnectionProvider ),而对于方法AddDapperIdentityFortDBMSNameConfiguration (例如: SqlServerConfiguration )。

如果您想对所有身份方法使用交易,则必须在下面添加.ConfigureDapperIdentityOptions(new DapperIdentityOptions { UseTransactionalBehavior = true }) ConfigureDapperIdentityCryptography(Configuration.GetSection("DapperIdentityCryptography"));

在控制器内部,您必须插入构造函数上的DapperUserStore变量”,例如:

 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 > ;
        }

在所有操作之后,您必须调用DapperUserStore.SaveChanges()方法,否则您的更改将被回滚。

当前,仅支持SQL Server,PostgreSQL和MySQL。当公司发布.NET核心版本的System.DATA实现时,我们计划对Oracle的支持。

使用GUID作为实体密钥

指定

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

更改默认模式(SQLServer)

传递从SqlServerConfiguration (或其他)继承的自定义类

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

并加上它

 services . AddDapperIdentityFor < CustomSqlServerConfiguration > ( )
下载源码

通过命令行克隆项目:

git clone https://github.com/grandchamp/Identity.Dapper.git