Asp.net InitializeIdentityFore将冻结,并且不会创建默认管理员帐户
当我第一次开始这个项目时,我没有任何错误 现在,当我运行项目并创建数据库时,它会不断加载。如果我停止运行,一切正常,除了我的管理员帐户没有创建 我正在使用Identity 2.0 代码如下: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
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