我最近尝试将我们的一个应用程序从.Net MVC v2升级到v3,现在所有登录尝试都失败了。我使用Crypto#HashPassword加密用户密码和登录时的Crypto#VerifyHashedPassword来检查密码是否有效。但由于某些原因,MVC v3似乎使用了另一种算法而不是MVC v2。在v2中,生成的哈希值总是为64,但在MVC v3中,哈希值的长度现在为68.
有人知道Crypto类是否有变化,或者是否可以配置使用过的算法?
以下是代码:
设置密码
public string Password
{
get { return this._Password; }
set { this.CryptedPassword = Crypto.HashPassword(value); }
}
验证密码
public bool HasPassword(string password)
{
return Crypto.VerifyHashedPassword(this.CryptedPassword, password);
}