核心身份种子用户 HashPassword 登录失败
Core Identity Seed User HashPassword failed login
我有一个 blazor wasm 托管解决方案 .net5 entity framework 和身份核心。我正在尝试使用以下
为管理员用户播种
public class ApplicationUserConfiguration : IEntityTypeConfiguration<ApplicationUser>
{
public void Configure(EntityTypeBuilder<ApplicationUser> builder)
{
#region Seed
var admin = new ApplicationUser
{
Id = "aacc90e3-c1cf-4f04-8bab-3a3498e84904",
UserName = "TestUser",
NormalizedUserName = "TESTUSER",
Email = "Test@Test.com",
NormalizedEmail = "TEST@TEST.COM",
EmailConfirmed = true,
LockoutEnabled = false
};
admin.PasswordHash = PassGenerate(admin, "P@ssword1");
builder.HasData(admin);
#endregion Seed
}
public string PassGenerate(ApplicationUser user, string password)
{
var passHash = new Microsoft.AspNetCore.Identity.PasswordHasher<ApplicationUser>();
return passHash.HashPassword(user, password);
}
}
我有 3 个问题
1 - 使用密码登录时,返回无效登录。
2 - 安全标记是空 Guid。注册用户时总是存在一个字符串
3 - LockoutEnabled 始终为 0。注册新用户时始终为 1
这是我的 DBContext OnModelCreating 方法
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
base.OnModelCreating(modelBuilder);
#region Identity Seed
modelBuilder.ApplyConfiguration(new ApplicationUserConfiguration());
modelBuilder.ApplyConfiguration(new IdentityRoleConfiguration());
modelBuilder.ApplyConfiguration(new IdentityUserRoleConfiguration());
#endregion
}
这是我服务器中身份的配置Startup.cs
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
base.OnModelCreating(modelBuilder);
#region Identity Seed
modelBuilder.ApplyConfiguration(new ApplicationUserConfiguration());
modelBuilder.ApplyConfiguration(new IdentityRoleConfiguration());
modelBuilder.ApplyConfiguration(new IdentityUserRoleConfiguration());
#endregion
modelBuilder.ApplyConfiguration(new CountryConfiguration());
}
这完全是基于我的愚蠢。
- 用户登录不起作用,因为登录视图接收电子邮件地址,但将其作为用户名传递给 signinmanager。那么用户名和电子邮件是不同的。愚蠢的我
2 & 3 从未更新,因为即使我正在更改配置的内容,我也从未删除迁移脚本并重置模型快照。所以我一直用相同的原始值更新数据库。
这是漫长的一天...
我有一个 blazor wasm 托管解决方案 .net5 entity framework 和身份核心。我正在尝试使用以下
为管理员用户播种public class ApplicationUserConfiguration : IEntityTypeConfiguration<ApplicationUser>
{
public void Configure(EntityTypeBuilder<ApplicationUser> builder)
{
#region Seed
var admin = new ApplicationUser
{
Id = "aacc90e3-c1cf-4f04-8bab-3a3498e84904",
UserName = "TestUser",
NormalizedUserName = "TESTUSER",
Email = "Test@Test.com",
NormalizedEmail = "TEST@TEST.COM",
EmailConfirmed = true,
LockoutEnabled = false
};
admin.PasswordHash = PassGenerate(admin, "P@ssword1");
builder.HasData(admin);
#endregion Seed
}
public string PassGenerate(ApplicationUser user, string password)
{
var passHash = new Microsoft.AspNetCore.Identity.PasswordHasher<ApplicationUser>();
return passHash.HashPassword(user, password);
}
}
我有 3 个问题
1 - 使用密码登录时,返回无效登录。
2 - 安全标记是空 Guid。注册用户时总是存在一个字符串
3 - LockoutEnabled 始终为 0。注册新用户时始终为 1
这是我的 DBContext OnModelCreating 方法
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
base.OnModelCreating(modelBuilder);
#region Identity Seed
modelBuilder.ApplyConfiguration(new ApplicationUserConfiguration());
modelBuilder.ApplyConfiguration(new IdentityRoleConfiguration());
modelBuilder.ApplyConfiguration(new IdentityUserRoleConfiguration());
#endregion
}
这是我服务器中身份的配置Startup.cs
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
base.OnModelCreating(modelBuilder);
#region Identity Seed
modelBuilder.ApplyConfiguration(new ApplicationUserConfiguration());
modelBuilder.ApplyConfiguration(new IdentityRoleConfiguration());
modelBuilder.ApplyConfiguration(new IdentityUserRoleConfiguration());
#endregion
modelBuilder.ApplyConfiguration(new CountryConfiguration());
}
这完全是基于我的愚蠢。
- 用户登录不起作用,因为登录视图接收电子邮件地址,但将其作为用户名传递给 signinmanager。那么用户名和电子邮件是不同的。愚蠢的我
2 & 3 从未更新,因为即使我正在更改配置的内容,我也从未删除迁移脚本并重置模型快照。所以我一直用相同的原始值更新数据库。
这是漫长的一天...