使用OnModelCreating创建IdentityUser时,如何传入加密密码实现登录?
在OnModelCreating中创建IdentityUser时设置加密密码的方法
你当前用HasData初始化IdentityUser的代码缺少加密后的密码字段,Identity要求密码必须以哈希形式存储,不能直接用明文。要解决这个问题,你需要使用PasswordHasher<IdentityUser>生成密码哈希,再赋值给用户的PasswordHash属性。
修改后的代码示例:
// 初始化密码哈希器 var passwordHasher = new PasswordHasher<IdentityUser>(); // 生成密码哈希(这里以"Admin123!"为例) var hashedPassword = passwordHasher.HashPassword(null, "Admin123!"); builder.Entity<IdentityUser>().HasData(new IdentityUser { Id= "0CD0E173758F4492B41EDD4A51D36BA5", UserName = "admin@admin.com", Email = "admin@admin.com", EmailConfirmed = true, PasswordHash = hashedPassword // 添加加密后的密码 });
说明:
PasswordHasher是Identity框架自带的密码哈希工具,会自动使用配置的哈希算法(默认是PBKDF2)生成安全的密码哈希。- 替换示例中的
"Admin123!"为你实际要设置的密码即可,登录时使用该明文密码就能通过验证。
内容的提问来源于stack exchange,提问作者Douglas Badaró
相关产品推荐
相关产品推荐

