核心身份种子用户 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());

            
        }

这完全是基于我的愚蠢。

  1. 用户登录不起作用,因为登录视图接收电子邮件地址,但将其作为用户名传递给 signinmanager。那么用户名和电子邮件是不同的。愚蠢的我

2 & 3 从未更新,因为即使我正在更改配置的内容,我也从未删除迁移脚本并重置模型快照。所以我一直用相同的原始值更新数据库。

这是漫长的一天...