私は新しいユニバーサルメンバーシッププロバイダーに移行しようとしています(自作ソリューションから)。古い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);
これらはどちらも機能していないようです。私は何が欠けていますか?
スコット