首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >ASP.Net身份手动密码哈希

ASP.Net身份手动密码哈希
EN

Stack Overflow用户
提问于 2014-02-03 22:52:51
回答 1查看 23K关注 0票数 18

我正在开发一个MVC5 web应用程序,它使用实体框架数据库优先方法和现有的数据库

我也在使用ASP.Net Identity进行授权和身份验证,但是,我没有使用内置的实体框架代码,即UserManagerApplicationUser等,而是使用了一种类似于Brock的方法。

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

我现在正在处理帐户登录和注册,我想在我存储到我的自定义用户表之前,对用户密码进行散列。

我意识到我可以创建自己的自定义类来实现IPasswordHasher,,然而,这就是我被困住的地方。下面显示了我认为它应该如何工作的模拟,然而,我甚至不能完全确定这是正确的。

代码语言:javascript
复制
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方法中,就像这样,我希望用户密码被散列并以字符串的形式返回,但是,我不知道在account函数中放入什么代码才能做到这一点。

代码语言:javascript
复制
CustomPassword pwd = new CustomPassword();
String UserPassword = "test@123";
String HashedNewPassword = pwd.HashPassword(UserPassword);

Q2:当用户登录到网站时,我想使用他们提供的密码,从数据库用户表中检索散列密码,然后在VerifyHashedPassword方法中比较它们,但同样,我不知道将散列字符串与非散列字符串进行比较的代码是什么。

我非常感谢任何关于如何做到这一点的建议。

谢谢。

EN

回答 1

Stack Overflow用户

发布于 2014-02-05 18:09:22

创建UserManager实例后,将passwordhasher属性分配给CustomPasswordHasher

代码语言:javascript
复制
UserManager<ApplicationUser> UserManager = new UserManager<ApplicationUser>(store);
UserManager.PasswordHasher = new CustomPasswordHasher(); // IPasswordHasher

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

票数 23
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21530418

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档