dotnet core 加入小组

462个成员 48个话题 创建时间:2017-09-10

IdentityServer4集成AspNetCoreIdentity,CheckPassword失败

发表于2018-03-13 736次查看

IdentityServer4集成AspNetCoreIdentity,CheckPassword失败,密码可以确定是对的,想问下这里的原理是比较密码么,还有ApplicationUser是否需要添加Password属性

2回复
  • 2楼 Jesse 2018-03-13

    在 Microsoft.AspNetCore.Identity这个命令空间下,在github上你可以找到identity的源代码: https://github.com/aspnet/Identity

    里面有一个IPasswordHasher<TUser>秘密都在这里:

    public interface IPasswordHasher<TUser> where TUser : class  
    {
        string HashPassword(TUser user, string password);
    
        PasswordVerificationResult VerifyHashedPassword(
            TUser user, string hashedPassword, string providedPassword);
    }

    我们的UserManager在进行密码验证的时候就是调用的VerifyHashedPassword

    你可以去看一下它的具体实现: PasswordHasher.cs 源码
    具体加密码算法identity 2和3稍微会有一些区别,代码中也可以体现出来。

    • ASP.NET Identity Version 2PBKDF2 with HMAC-SHA1, 128-bit salt, 256-bit subkey, 1000 iterations
    • ASP.NET Core Identity Version 3PBKDF2 with HMAC-SHA256, 128-bit salt, 256-bit subkey, 10000 iterations

     

    如果你想知道你的密码为什么不对,就把你们这个密码重新加一次hash之后再与数据库中的对比一下即可。

     

发表回复
你还没有登录,请先 登录或 注册!