加密/解密自定义MembershipProvider中的密码使用情况?

时间:2009-06-28 06:28:26

标签: asp.net encryption cryptography passwords membership-provider

我实施了自定义会员提供商。 我还实现了自定义AES加密/解密,覆盖了MembershipProvider的抽象EncryptPassword / DecryptPassword。

然而,当我触发ValidateUser时,密码不会自动转换,我错过了什么?

是应该自动调用还是我必须从我的代码中调用此方法?

2 个答案:

答案 0 :(得分:2)

您需要自己调用加密例程。

答案 1 :(得分:1)

您需要包含对加密/解密方法的调用,如下所示:

public override bool ValidateUser(string username, string password)
{
    string password=query to get the password from the db/users_list;

    return (CheckPassword(password, storedPassword));
}

private bool CheckPassword(string password, string dbpassword)
{
    string pwd1 = password;
    string pwd2 = dbpassword;

    pwd2 = UEncodePassword(dbpassword);

    if (pwd1 == pwd2) return true;

    return false;
}

private string UEncodePassword(string encodedPassword)
{
    string password = encodedPassword;
    password = Encoding.Unicode.GetString(DecryptPassword(Convert.FromBase64String(encodedPassword)));

    return password;
}