我正在尝试迁移到新的 Universal Membership 提供商(从自制解决方案)。我已将旧的 User 表迁移到 Users/Memberships 表。
当我运行时Membership.ValidateUser(txtUsername.Text.Trim(), txtPassword.Text.Trim())
,它总是返回 false,即使我知道用户名/密码是正确的。
以下是我生成密码、哈希和盐的方式:
var salt = Crypto.GenerateSalt();
var hashedPassword = this.GenerateHashWithSalt(password, salt);
这是我正在使用的 GenerateHashWithSalt 方法
private string GenerateHashWithSalt(string password, string salt)
{
string hashWithSalt = password + salt;
byte[] saltedHashBytes = Encoding.UTF8.GetBytes(hashWithSalt);
HashAlgorithm algo = HashAlgorithm.Create(Membership.HashAlgorithmType);
byte[] hash = algo.ComputeHash(saltedHashBytes);
return Convert.ToBase64String(hash);
}
我也去了:
var salt = Crypto.GenerateSalt();
var saltedPassword = password + salt;
var hashedPassword = Crypto.HashPassword(saltedPassword);
这些似乎都不起作用。我错过了什么?
斯科特