【发布时间】:2016-12-07 04:16:45
【问题描述】:
我正在使用带有 Identity 的 ASP.NET MVC 来保护我的 Web 应用程序。我创建了一个“canEdit”角色,并有 5 个用户想要在数据库中播种。
我最初是这样尝试的:
bool AddUserAndRole(ERPWAG.Models.ApplicationDbContext context)
{
IdentityResult ir;
var rm = new RoleManager<IdentityRole>(new RoleStore<IdentityRole>(context));
ir = rm.Create(new IdentityRole("canEdit"));
var um = new UserManager<ApplicationUser>(new UserStore<ApplicationUser>(context));
var user = new ApplicationUser()
{
UserName = "user1@email.com",
};
ir = um.Create(user, "password");
if (ir.Succeeded == false)
return ir.Succeeded;
ir = um.AddToRole(user.Id, "canEdit");
return ir.Succeeded;
var user2 = new ApplicationUser()
{
UserName = "user2@email.com",
};
ir = um.Create(user, "password");
if (ir.Succeeded == false)
return ir.Succeeded;
ir = um.AddToRole(user2.Id, "canEdit");
return ir.Succeeded;
var user3 = new ApplicationUser()
{
UserName = "user3@email.com",
};
ir = um.Create(user, "password");
if (ir.Succeeded == false)
return ir.Succeeded;
ir = um.AddToRole(user3.Id, "canEdit");
return ir.Succeeded;
var user4 = new ApplicationUser()
{
UserName = "user4@email.com",
};
ir = um.Create(user, "password!");
if (ir.Succeeded == false)
return ir.Succeeded;
ir = um.AddToRole(user4.Id, "canEdit");
return ir.Succeeded;
var user5 = new ApplicationUser()
{
UserName = "user5@email.com",
};
ir = um.Create(user, "password");
if (ir.Succeeded == false)
return ir.Succeeded;
ir = um.AddToRole(user5.Id, "canEdit");
return ir.Succeeded;
}
然后我在我的 Configuration.cs 的 Seed 方法中调用 AddUserAndrole(context),调用 update-database 并发布。
我的用户无法登录网站。用这些用户预填充身份数据库并将他们与角色相关联的最佳方法是什么?
【问题讨论】:
标签: asp.net-mvc asp.net-identity