Encuentre el paquete NUGET correspondiente para su DBMS (por ejemplo: Identity.Dapper.SQLServer).
Para configurar la conexión DBMS, puede agregar una sección DapperIentity y una sección DapperIdentityCryptorgraphy a su archivo de configuración como este:
"DapperIdentity" : {
"ConnectionString" : " Connection string of your database " ,
"Username" : " user " ,
"Password" : " 123 "
},
"DapperIdentityCryptography" : {
"Key" : " Base64 32 bytes key " ,
"IV" : " Base64 16 bytes key "
} Ejemplo:
Clave: "E546C8DF278CD5931069B522E695D4F2" (32 bytes)
Base64 Clave codificada: "rtu0nkm4reyynzhdrdu5mzewnjlcntiyrty5nuq0rji ="
IV: "SomerealLyCooliv" (16 bytes)
Base64 codificado IV: "U29TZVJLYWXSEUNVB2XJVG =="
Alternativamente, puede usar la sección predeterminada de conexiones :
"ConnectionStrings" : {
"DefaultConnection" : " Connection string of your database "
}O puede usar los comandos de secretos del usuario:
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"
Dapperidentity: la contraseña se puede encriptar con AES256 utilizando la clave y la IV proporcionada.
En el archivo startup.cs , vaya a ConfigureServices y agregue las siguientes líneas:
services . ConfigureDapperConnectionProvider < T > ( Configuration . GetSection ( "DapperIdentity" ) )
. ConfigureDapperIdentityCryptography ( Configuration . GetSection ( "DapperIdentityCryptography" ) ) ;
services . AddIdentity < DapperIdentityUser , DapperIdentityRole < int > > ( )
. AddDapperIdentityFor < T > ( )
. AddDefaultTokenProviders ( ) ;o
services . ConfigureDapperConnectionProvider < T > ( Configuration . GetSection ( "ConnectionStrings" ) ) Donde t para el método ConfigureDapperConnectionProvider es DBMSNameConnectionProvider (p. Ej.: SqlServerConnectionProvider ) y t para el método AddDapperIdentityFor es DBMSNameConfiguration ( SqlServerConfiguration . Ej.
Si desea utilizar transacciones para todos los métodos de identidad, tendrá que agregar .ConfigureDapperIdentityOptions(new DapperIdentityOptions { UseTransactionalBehavior = true }) a continuación ConfigureDapperIdentityCryptography(Configuration.GetSection("DapperIdentityCryptography"));
Y dentro de su controlador, tendrá que insertar en el constructor un DapperUserStore<TUser, TKey, TUserRole, TRoleClaim, TUserClaim, TUserLogin, TRole> variable, así:
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 > ;
} Y después de todas las operaciones, tendrá que llamar al método DapperUserStore.SaveChanges() , de lo contrario, sus cambios se verán revelados.
Actualmente, solo son compatibles con SQL Server, PostgreSQL y MySQL. Planeamos soporte para Oracle cuando la compañía lanza la versión Core .NET para su implementación de datos.
Especificar el
services . AddIdentity < DapperIdentityUser < Guid > , DapperIdentityRole < Guid > > ( )
. AddDapperIdentityFor < T , Guid > ( ) ; Pase una clase personalizada que herede de SqlServerConfiguration (u otra)
public class CustomSqlServerConfiguration : SqlServerConfiguration
{
public CustomSqlServerConfiguration ( )
{
base . SchemaName = "[customSchema]" ;
}
}Y agrégalo con
services . AddDapperIdentityFor < CustomSqlServerConfiguration > ( )