小编Zed*_*edx的帖子

身份 -VerifyHashedPassword 方法效果不佳

我对 ASP.NET Identity 和 EntityFramework 有一个非常奇怪的问题。我有一个登录表单,从中我收到用户名和密码。然后我检查数据库中是否存在该用户。之后,我调用 UserManager 的方法VerifyHashedPassword 来验证数据库中的用户密码和表单中的用户密码是否相同。一切都很好,但是对于数据库中的某些用户,该方法给出的结果是给定的密码和散列密码不相同(但实际上是相同的)。我只是不明白为什么某些用户的密码验证失败。

这是我的代码。

public async Task<User> FindUserAsync(string userName, string password)
    {
        User user;

        if (password != null)
        {
            user = await _userManager.FindByNameAsync(userName);

            if (user == null)
            {
                user = await _userManager.FindByEmailAsync(userName);
            }

            var result = _userManager.PasswordHasher.VerifyHashedPassword(user.PasswordHash, password);

            if (!(result == PasswordVerificationResult.Success))
            {
                return null;
            }
        }            

        return user;
    }
Run Code Online (Sandbox Code Playgroud)

c# asp.net entity-framework asp.net-identity

5
推荐指数
1
解决办法
4277
查看次数

标签 统计

asp.net ×1

asp.net-identity ×1

c# ×1

entity-framework ×1