0

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

但是,当我触发 ValidateUser 时,密码不会自动转换,我是否遗漏了什么?

它应该被自动调用还是我必须从我的代码中调用这个方法?

4

2 回答 2

2

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

于 2009-06-28T06:50:07.750 回答
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;
}
于 2010-02-09T08:53:05.580 回答