在 ASP Identity Framework 中,VerifyHashedPassword 方法用于验证密码的哈希值是否匹配。如果该方法始终返回 Failed,则意味着输入的密码无法正确匹配哈希值。
此问题的可能原因之一是使用了错误的哈希算法。例如,如果哈希算法用于创建密码哈希的版本与 VerifyHashedPassword 方法使用的版本不同,则会出现此问题。在这种情况下,需要使用与哈希创建时相同的算法来验证哈希值。
正确使用 VerifyHashedPassword 方法的示例如下所示:
// 获取用户输入的密码 string password = "myPassword123";
// 获取保存在数据库中的密码哈希值 string hashedPassword = "JGcrXpCU0BluwDAudtaiHERror7l6XLpmRcKsIbzwvU=";
// 实例化 PasswordHasher 类 var passwordHasher = new PasswordHasher();
// 验证密码哈希值是否匹配输入密码 var result = passwordHasher.VerifyHashedPassword(hashedPassword, password);
if (result == PasswordVerificationResult.Success) { Console.WriteLine("密码匹配成功!"); } else { Console.WriteLine("密码匹配失败!"); }
通过正确使用哈希算法和 VerifyHashedPassword 方法,可以解决 ASP Identity Framework VerifyHashedPassword 总是返回 Failed 的问题。
上一篇:AspIdentity-获取某个角色下的所有用户以及获取某个用户所属的所有角色
下一篇:ASPIdentityFramework:为AspNetUsers表添加了个性化属性,但未更新IdentityUser模型。