MVC 5 Seed Users and Roles

前端 未结 7 1882
有刺的猬
有刺的猬 2020-11-28 01:56

I have been playing about with the new MVC 5, I have a few models, controller and views setup using code first migrations.

My question is how do I seed users and ro

7条回答
  •  情深已故
    2020-11-28 02:36

    This is my method base on Valin answer, I have added roles in db and added password for user. This code is placed in Seed() method in Migrations>Configurations.cs.

    // role (Const.getRoles() return string[] whit all roles)
    
        var RoleManager = new RoleManager(new RoleStore(context));
        for (int i = 0; i < Const.getRoles().Length; i++)
        {
            if (RoleManager.RoleExists(Const.getRoles()[i]) == false)
            {
                RoleManager.Create(new IdentityRole(Const.getRoles()[i]));
            }
        }
    
    // user
    
        var UserManager = new UserManager(new UserStore(context));
        var PasswordHash = new PasswordHasher();
        if (!context.Users.Any(u => u.UserName == "admin@admin.net"))
        {
            var user = new ApplicationUser
            {
                 UserName = "admin@admin.net",
                 Email = "admin@admin.net",
                 PasswordHash = PasswordHash.HashPassword("123456")
             };
    
             UserManager.Create(user);
             UserManager.AddToRole(user.Id, Const.getRoles()[0]);
        }
    

提交回复
热议问题