查找DBMS的相应Nuget软件包(例如:Identity.dapper.sqlserver)。
要配置DBMS连接,您可以将DapperIdentity和DapperIdentityCryptography部分添加到您的配置文件中:
"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并添加以下行:
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 ),而对于方法AddDapperIdentityFor的t是DBMSNameConfiguration (例如: SqlServerConfiguration )。
如果您想对所有身份方法使用交易,则必须在下面添加.ConfigureDapperIdentityOptions(new DapperIdentityOptions { UseTransactionalBehavior = true }) ConfigureDapperIdentityCryptography(Configuration.GetSection("DapperIdentityCryptography"));
在控制器内部,您必须插入构造函数上的DapperUserStore<TUser, TKey, TUserRole, TRoleClaim, TUserClaim, TUserLogin, TRole>变量”,例如:
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的支持。
指定
services . AddIdentity < DapperIdentityUser < Guid > , DapperIdentityRole < Guid > > ( )
. AddDapperIdentityFor < T , Guid > ( ) ; 传递从SqlServerConfiguration (或其他)继承的自定义类
public class CustomSqlServerConfiguration : SqlServerConfiguration
{
public CustomSqlServerConfiguration ( )
{
base . SchemaName = "[customSchema]" ;
}
}并加上它
services . AddDapperIdentityFor < CustomSqlServerConfiguration > ( )