繁体   English   中英

ASP.NET Core将辅助密码添加到IdentityUser

[英]ASP.NET Core add secondary password to IdentityUser

我正在使用带有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以纯文本格式存储在数据库中吗?

您可以使用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中的哈希密码

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM