0
我正试图迁移到新的通用会员供应商(来自家庭酿造解决方案)。我已将我们的旧用户表迁移到Users/Membershiphips表。将用户迁移到通用会员供应商
当我运行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);
这些似乎都不起作用。我错过了什么?
Scott
您是否使用家庭自定义代码进行编码并使用成员资格提供程序的默认编码方法进行验证? – Win
我没有使用家庭酿造。我正在使用通用提供程序。因此,用户信用使用HMACSHA256算法w/salt进行哈希处理。改变了我如何生成这一切。将更新。 –