为了账号安全,请及时绑定邮箱和手机立即绑定

ASP.NET Core 为 IdentityUser 添加二级密码

ASP.NET Core 为 IdentityUser 添加二级密码

C#
红糖糍粑 2022-10-23 10:07:44
我正在使用带有 EF Core 的 ASP.NET Core 2.2。我有一个User看起来像这样的类:public class User : IdentityUser{    public string FirstName { get; set; }    public string LastName { get; set; }}我想添加一个PIN属性,作为额外安全操作的辅助密码。用户登录系统,但如果他想做一些更特别的事情(比如汇款),系统会提示他输入他的 PIN。我的问题是散列字符串的最简单方法是什么,所以我不会将 PIN 以纯文本形式存储在数据库中?
查看完整描述

1 回答

?
慕婉清6462132

TA贡献1804条经验 获得超2个赞

您可以使用IPasswordHasher 接口,当用户注册时,您可以创建将存储在数据库中的密码哈希(PIN 属性),当您需要验证时,对提供的密码/PIN 进行哈希处理并将其与存储的哈希进行比较.


例如,使用 DI 来涉及扩展:


public readonly IPasswordHasher<ApplicationUser> _passwordHasher;

public HomeController(IPasswordHasher<ApplicationUser> passwordHasher )

{

    _passwordHasher = passwordHasher;

}

创建散列密码:


var hasedPassword = _passwordHasher.HashPassword(null,"Password");

验证 :


var successResult = _passwordHasher.VerifyHashedPassword(null, hasedPassword , "Password");

您还可以参考文档:ASP.NET Core 中的哈希密码



查看完整回答
反对 回复 2022-10-23
  • 1 回答
  • 0 关注
  • 61 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号