我有以下内容:
interface IDefectRepository { /* ... */ }
class MyDefectRepository : IDefectRepository
{
public MyDefectRepository(string url, string userName, string password)
{
// ...
}
// ...
}
我正在使用< parameters>从Web.config传递构造函数参数。有什么办法可以存储在Web.config文件中加密的密码吗?其他建议?
答案 0 :(得分:1)
尝试从MyDefectRepositoryWithEncryptedPasswords
继承MyDefectRepository
。在MyDefectRepositoryWithEncryptedPasswords
构造函数中解密密码并将其传递给MyDefectRepository
构造函数,如下所示:
class MyDefectRepositoryWithEncryptedPasswords : MyDefectRepository
{
public MyDefectRepositoryWithEncryptedPasswords(string url, string userName, string encryptedPassword)
: base(url, userName, Decrypt(encryptedPassword))
{
}
public static string Decrypt(string encrypted)
{
// Do whatever...
}
}
无论如何,我认为您不应该使用双向加密方法存储加密密码。您应该使用某种哈希(加密类型)并比较哈希值。这需要更改构造函数以接收密码,而不是密码。
答案 1 :(得分:1)
您可以通过ISubDependencyResolver(sample1,sample2)注入密码,该密码将从您的web.config中的encrypted section获取密码。