首页 > 解决方案 > 如何在 ASP.NET Identity 中使用 OnModelCreating 添加管理员用户?

问题描述

如何OnModelCreating在 ASP.NET Identity 中添加管理员用户?

protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
    modelBuilder.Entity<IdentityUser>
    (
       user.UserName = "admin";
       user.Email = "admin@gmail.com";
       string userPassword = "Admin123#";
    ).ToTable("AspNetUsers");
}

标签: c#entity-frameworkasp.net-core

解决方案


尝试这个 :

 protected override void OnModelCreating(ModelBuilder builder)
    {
        base.OnModelCreating(builder);
        // any unique string id
        const string ADMIN_ID = "a18be9c0-aa65-4af8-bd17-00bd9344e575";
        const string ROLE_ID = "ad376a8f-9eab-4bb9-9fca-30b01540f445";

        builder.Entity<IdentityRole>().HasData(new IdentityRole
        {
            Id = ROLE_ID,
            Name = "admin",
            NormalizedName = "admin"
        });

        var hasher = new PasswordHasher<IdentityUser>();
        builder.Entity<IdentityUser>().HasData(new IdentityUser
        {
            Id = ADMIN_ID,
            UserName = "admin",
            NormalizedUserName = "admin",
            Email = "admin@gmail.com",
            NormalizedEmail = "admin@gmail.com",
            EmailConfirmed = false,
            PasswordHash = hasher.HashPassword(null, "Admin123#"),
            SecurityStamp = string.Empty
        });

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

参考 :

https://inneka.com/programming/c/how-to-seed-an-admin-user-in-ef-core-2-1-0/


推荐阅读