查找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 > ( )