将应用程序用户从 MVC 中添加 ASP.NET



我正在尝试播种由 ASP.NET MVC Web应用程序生成的ApplicationUser

但不是用户将使用我的初始值设定项添加。知道吗?

身份配置.cs

public class ApplicationUserStore : UserStore<ApplicationUser>
{
    public ApplicationUserStore()
        : base(new ApplicationUserDbContext())
    { }
}
public class ApplicationUserManager : UserManager<ApplicationUser>
{
    public ApplicationUserManager(ApplicationUserStore store)
        : base(store)
    {
    }
}

应用程序用户初始值设定项.cs

public class ApplicationUserInitializer : DropCreateDatabaseAlways<ApplicationUserDbContext>
{
    protected override void Seed(ApplicationUserDbContext context)
    {
        using (var sotre = new ApplicationUserStore())
        using (var manager = new ApplicationUserManager(sotre))
        {
            manager.CreateAsync(new ApplicationUser
            {
                UserName = "myname"
            }, "P@ssword!");
        }
    }
}

这就是它为我工作的方式。身份模型:

public class ApplicationDbContext : IdentityDbContext<ApplicationUser>
{
    public ApplicationDbContext() : base("DefaultConnection", throwIfV1Schema: false)
    {
    }
    static ApplicationDbContext()
    {
        Database.SetInitializer<ApplicationDbContext>(new ApplicationDbInitializer());
    }

    public static ApplicationDbContext Create()
    {
        return new ApplicationDbContext();
    }
    //dbsets and modelbuilder

身份配置:

public class ApplicationDbInitializer : DropCreateDatabaseIfModelChanges<ApplicationDbContext>
{
    protected override void Seed(ApplicationDbContext context)
    {
        InitializeIdentityForEF(context);
        base.Seed(context);
    }
    //Create User=Admin@Admin.com with password=Admin@123456 in the Admin role        
    public static void InitializeIdentityForEF(ApplicationDbContext db)
    {
        var roleStore = new RoleStore<IdentityRole>(db);
        var roleManager = new RoleManager<IdentityRole>(roleStore);
        var userStore = new UserStore<ApplicationUser>(db);
        var userManager = new UserManager<ApplicationUser>(userStore);
        const string name = "admin@example.com";
        const string password = "Admin@123456";
        const string roleAdmin = "Admin";
        const string roleEmployeer = "Employeer";
        const string roleCandidate = "Candidate";
//just seed whatever here
            var user = userManager.FindByName(name);
            if (user == null)
            {
                user = new ApplicationUser { UserName = name, Email = name, dateReg = DateTime.Now };
                var result = userManager.Create(user, password);
                result = userManager.SetLockoutEnabled(user.Id, false);
            }
            // Add user admin to Role Admin if not already added
            var rolesForUser = userManager.GetRoles(user.Id);
            if (!rolesForUser.Contains(role.Name))
            {
                var result = userManager.AddToRole(user.Id, role.Name);
            }

最新更新