如何使用Identity asp.net mvc 5在初始化程序中为用户播种?

时间:2016-07-05 16:18:25

标签: entity-framework visual-studio asp.net-identity

使用数据库初始化程序时,我可以将角色和用户保存在我的开发数据库中,但密码永远不会起作用。我无法登录。

这是代码,它缺少什么?

public class DevelopmentDbInitializer : System.Data.Entity. DropCreateDatabaseIfModelChanges<ApplicationDbContext>
{
    protected override void Seed(ApplicationDbContext context)
        {
            string password = "1_Changeme";
            string administrator = "Administrator";
            string adminEmail = "admin@office.com";

            // Role
            if (!context.Roles.Any(role => role.Name == Utils.Constants.ROLE_ADMINISTRATOR))
            {
                var roleStore = new RoleStore<IdentityRole>(context);
                var roleManager = new RoleManager<IdentityRole>(roleStore);
                var adminRole = new IdentityRole { Name = Utils.Constants.ROLE_ADMINISTRATOR };
                roleManager.Create(adminRole);
            }

            // User
            if (!context.Users.Any(user => user.UserName == administrator))
            {
                var userStore = new UserStore<ApplicationUser>(context);
                var userManager = new UserManager<ApplicationUser>(userStore);
                var adminUser = new ApplicationUser { Email = adminEmail, UserName = administrator, PhoneNumber = "7144251556" };
                userManager.Create(adminUser, password);
                userManager.AddToRole(adminUser.Id, Utils.Constants.ROLE_ADMINISTRATOR);
            }

        }
}

用户在数据库中,但有密码。我也使用带有哈希的变体,并且是同一个故事。此代码似乎适用于旧版本的Visual Studio和实体。

去年VS及其图书馆发生了什么变化?

提前致谢。

使用Visual Studio 2015.我认为它是Identity 2.0。代码来自stackoverflow的不同地方...

0 个答案:

没有答案