设置具有身份ASPNETCORE 2.0的DAPPER



我找到了一个看起来很整洁的小软件包,可让您使用Dapper Identity Core 2.0。但是,由于我对核心发展非常陌生,因此我对某些事情感到有些困惑,我不确定如何解决。有问题的包是:https://github.com/grandchamp/indistity.dapper

包裹问的是设置一些较小的配置,然后事情应该正常工作。这是说明:

//To configure the DBMS connection, you can add a DapperIdentity and a DapperIdentityCryptography section to your configuration file like this:
"DapperIdentity": {
    "ConnectionString": "Connection string of your database",
    "Username": "user",
    "Password": "123"
},
"DapperIdentityCryptography": {
    "Key": "base64 32 bits key",
    "IV": "base64 16 bits key"
}

真正使我感到困惑的是DapperIdentityCryptography部分。它是否期望我像它一样留下它,还是希望我提供某种加密的字符串。我只是不明白。我感到困惑的另一部分是将连接字符串以可读的格式留下,我有一种感觉,我应该加密它,将其放在连接串部分中,然后提供解密的钥匙?

从目前我可以看到的DapperIdentityCryptography部分仅用于解密DapperIdentity部分内提供的Password。这不是很有用,因为您同时将加密密码和加密密钥存储在同一文件中,这几乎是将密码存储在纯文本中。

您也可以将密码直接存储在纯文本中,而完全忽略DapperIdentityCryptography部分。

示例:

"DapperIdentity": {
    "ConnectionString": "Server=myServerAddress;Database=myDataBase",
    "Username": "MyUserName",
    "Password": "MyPassword"
}

相反,如果要使用密码学部分,则需要生成一对键,然后将IV生成AES,请使用它加密DB密码,然后将键和IV存储在您的appsettings.json 中,转换为Base64 strings (或者您可以在开发机器中使用命令行实用程序dotnet user-secrets,如文档所说的),然后在UTF8字符串中使用DB密码。

然后您的appsettings.json看起来像这样(取自样本):

"DapperIdentity": {
    "ConnectionString": "Server=myServerAddress;Database=myDataBase",
    "Username": "MyUserName",
    "Password": "MYUTF8STRINGENCRYPTEDPASSWORD"
},
"DapperIdentityCryptography": {
    "Key": "FrFE/VtQ5pfNhGYVnyf65Sa6j4h6ion3ItkAnqLsnBE=", // this is an example, never use in production
    "IV": "Ig/YU0tgUqI1u2VzWH0plQ==" // this is an example, never use in production
}

相关内容

  • 没有找到相关文章

最新更新