Asp.net InitializeIdentityFore将冻结,并且不会创建默认管理员帐户

Asp.net InitializeIdentityFore将冻结,并且不会创建默认管理员帐户,asp.net,asp.net-mvc,entity-framework,asp.net-identity,Asp.net,Asp.net Mvc,Entity Framework,Asp.net Identity,当我第一次开始这个项目时,我没有任何错误 现在,当我运行项目并创建数据库时,它会不断加载。如果我停止运行,一切正常,除了我的管理员帐户没有创建 我正在使用Identity 2.0 代码如下: public static void InitializeIdentityForEF(ApplicationDbContext db) { var userManager = HttpContext.Current.GetOwinContext().GetUserManager<Ap

当我第一次开始这个项目时,我没有任何错误

现在,当我运行项目并创建数据库时,它会不断加载。如果我停止运行,一切正常,除了我的管理员帐户没有创建

我正在使用Identity 2.0

代码如下:

 public static void InitializeIdentityForEF(ApplicationDbContext db) {
        var userManager = HttpContext.Current.GetOwinContext().GetUserManager<ApplicationUserManager>();
        var roleManager = HttpContext.Current.GetOwinContext().Get<ApplicationRoleManager>();
        const string name = "admin@mundogato.org";
        const string password = "Admin@1234";
        const string roleName = "Admin";

        //Create Role Admin if it does not exist
        var role = roleManager.FindByName(roleName);
        if (role == null) {
            role = new ApplicationRole(roleName);
            var roleresult = roleManager.Create(role);
        }

        var user = userManager.FindByName(name);
        if (user == null) {
            user = new ApplicationUser { UserName = name, Email = name };
            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);
        }
    }
publicstaticvoid initializedEntityForef(ApplicationDbContext数据库){
var userManager=HttpContext.Current.GetOwinContext().GetUserManager();
var rolemager=HttpContext.Current.GetOwinContext().Get();
常量字符串名称=”admin@mundogato.org";
常量字符串密码=”Admin@1234";
常量字符串roleName=“Admin”;
//如果角色Admin不存在,则创建该角色
var role=rolemager.FindByName(roleName);
如果(角色==null){
角色=新的应用程序角色(roleName);
var roleresult=rolemanger.Create(角色);
}
var user=userManager.FindByName(名称);
if(user==null){
user=newapplicationuser{UserName=name,Email=name};
var result=userManager.Create(用户,密码);
结果=userManager.SetLockoutEnabled(user.Id,false);
}
//将用户管理员添加到角色管理员(如果尚未添加)
var rolesForUser=userManager.GetRoles(user.Id);
如果(!rolesForUser.Contains(role.Name)){
var result=userManager.AddToRole(user.Id,role.Name);
}
}

也有同样的问题,当时OWIN还没有准备好。假设ApplicationDbContext派生自标识上下文,请为管理器尝试以下代码:

var roleManager = new RoleManager<IdentityRole>(new RoleStore<IdentityRole>(db));
var userManager = new UserManager<ApplicationUser>(new UserStore<ApplicationUser>(db));
var角色管理器=新角色管理器(新角色存储库(db));
var userManager=newusermanager