Identity.Dapper
查找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的支持。
使用GUID作为实体密钥
指定
services . AddIdentity < DapperIdentityUser < Guid > , DapperIdentityRole < Guid > > ( ) . AddDapperIdentityFor < T , Guid > ( ) ;
更改默认模式(SQLServer)
传递从SqlServerConfiguration (或其他)继承的自定义类
public class CustomSqlServerConfiguration : SqlServerConfiguration { public CustomSqlServerConfiguration ( ) { base . SchemaName = \"[customSchema]\" ; } }
并加上它
services . AddDapperIdentityFor < CustomSqlServerConfiguration > ( )
