我在asp.net WebAPI应用程序中使用aspnet标识来创建,更新删除,登录和注销新用户。当我创建新用户时,它会自动将PasswordHash和安全标记存储在数据库中。但现在我想将密码盐字符串存储在数据库中。我搜索了很多但无法做到。是否可以通过使用aspnet标识来节省盐?如果是,那么如何?
答案 0 :(得分:0)
代码
<强> 1。创建应用程序用户类
您需要创建一个继承自IdentityUser的类。
public class ApplicationUser : IdentityUser
{
public string UserSalt {get;set;}
}
<强> 2。背景
然后您需要调整模型(假设您首先使用EF代码)。
您的应用程序上下文(您也可以为ApplicationRole创建一个特殊类):
public class ApplicationDbContext : IdentityDbContext<ApplicationUser, ApplicationRole, string> {...}
^以防您的应用程序是身份提供者,而您的应用程序上下文代表您的身份上下文。
第3。调整模型
将属性添加到模型构建器:
modelBuilder.Entity("IdentityProvider.Models.ApplicationUser", b =>
{
...
b.Property<string>("UserSalt");
...
}
<强> 4。调整关系
还要确保在代码中首先将IdentityUser作为实体名称的任何地方将其切换为ApplicationUser。