ASP.NET身份手册密码哈希



我正在开发 MVC 5 Web应用程序使用 Entity Framework Database First 使用现有数据库

我还使用 asp.net Identity 用于我的授权和身份验证,但是,我不使用内置的内置实体框架代码,即 usermanager Applicationuser 等,我正在使用与Brock Allen相似的方法。

http://brockallen.com/2013/10/24/a-primer-on-owin-cookie-authentication-middle-middleware-for-the-asp-net-developer/

我现在正在使用帐户登录和注册工作,我想在将用户密码哈希放在我的自定义用户表中。

我意识到我可以创建自己的自定义类,该类实现 ipasswordhasher ,但是,这就是我被卡住的地方。下面显示了我认为它应该如何工作的模拟,但是,我不确定这是正确的。

public class CustomPassword : IPasswordHasher
{
    public string HashPassword(string password)
    {
        return password;
    }
    public PasswordVerificationResult VerifyHashedPassword(string hashedPassword, string providedPassword)
    {
        if (hashedPassword.Equals(providedPassword))
            return PasswordVerificationResult.Success;
        else return PasswordVerificationResult.Failed;
    }
}

这些是我的问题:

Q1 :注册新用户帐户时,我传递了用户密码 从我的帐户控制器中的HashPassword方法中, 我希望用户密码哈希并作为字符串返回, 但是,我不知道将什么代码放入 HashPassword 中 这样做的功能。

CustomPassword pwd = new CustomPassword();
String UserPassword = "test@123";
String HashedNewPassword = pwd.HashPassword(UserPassword);

Q2 :当用户登录到网站时,我想获取其提供的密码,从数据库用户表中检索Hashed密码,然后在 verifyifyHashedPassword中比较它们方法,但同样,我不知道该代码是什么代码与非障碍字符串进行比较。

我将非常感谢有关如何执行此操作的任何建议。

谢谢。

创建USERMANAGER实例后,将passwordhasher属性分配给您的custompasswordhasher

UserManager<ApplicationUser> UserManager = new UserManager<ApplicationUser>(store);
UserManager.PasswordHasher = new CustomPasswordHasher(); // IPasswordHasher

使用UserManager查找用户名和密码的用户。

相关内容

  • 没有找到相关文章

最新更新