gpt4 book ai didi

c# - ASP.Net 身份手册密码散列

转载 作者:可可西里 更新时间:2023-11-01 02:59:59 28 4
gpt4 key购买 nike

我正在使用 Entity Framework 数据库优先方法和现有数据库开发一个MVC 5网络应用程序。

我还使用 ASP.Net Identity 进行授权和身份验证,但是,我没有使用内置的 Entity Framework 代码,即 UserManagerApplicationUser 等,我正在使用与 Brock Allen 类似的方法。

http://brockallen.com/2013/10/24/a-primer-on-owin-cookie-authentication-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:在注册新用户账号时,我传递了用户密码 从我的帐户 Controller 进入 HashPassword 方法,就像这样, 我希望用户密码经过哈希处理并作为字符串返回, 但是,我不知道要将什么代码放入 HashPassword 功能来做到这一点。

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

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

我将不胜感激有关如何执行此操作的任何建议。

谢谢。

最佳答案

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

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

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

关于c# - ASP.Net 身份手册密码散列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21530418/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com