在Castle Windsor配置文件中存储密码?

时间:2009-03-11 11:11:56

标签: castle-windsor passwords

我有以下内容:

interface IDefectRepository { /* ... */ }
class MyDefectRepository : IDefectRepository
{
    public MyDefectRepository(string url, string userName, string password)
    {
        // ...
    }

    // ...
}

我正在使用< parameters>从Web.config传递构造函数参数。有什么办法可以存储在Web.config文件中加密的密码吗?其他建议?

2 个答案:

答案 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)

您可以通过ISubDependencyResolversample1sample2)注入密码,该密码将从您的web.config中的encrypted section获取密码。