首页 > 解决方案 > 在 asp.net core 3.1 播种中设置用户密码

问题描述

我想在ApplicationDbContext中播种用户和角色:

protected override void OnModelCreating(ModelBuilder builder)
    {
        base.OnModelCreating(builder);

        builder.Entity<IdentityRole>().HasData(new IdentityRole
        {
            Id = 1, //Is this OK?
            Name = "admin",
            NormalizedName = "ADMIN"
        });

        builder.Entity<IdentityUser>().HasData(new IdentityUser
        {
            Id = 1,
            UserName = "admin1",
            Email = "a@a.com",
            PasswordHash = ??,
            SecurityStamp = ??
        });

        builder.Entity<IdentityUserRole<string>>().HasData(new IdentityUserRole<string>
        {
            RoleId = 1,
            UserId = 1
        });
    }

1.用户和角色的id设置为1可以吗?

2.如何生成PasswordHash和SecurityStamp??

我试试这个,但是当我在登录页面输入用户名和密码时它不起作用

无效的登录尝试。

var passHasher = new PasswordHasher<IdentityUser>();
var p = passHasher.HashPassword(user, "123456");

3.这是使用模型构建器的正确方法还是我应该使用 UserManager 在种子中创建用户?

标签: asp.net-identity

解决方案


推荐阅读