关于使用新的 Asp.net 身份安全框架的文档很少。
我拼凑了我所能做的,尝试创建一个新角色并向其添加一个用户。 我尝试了以下方法: https://stackoverflow.com/questions/19541101/add-role-in-asp-net-identity
看起来它可能是从这个博客中获取的信息:[用 asp.net 身份创建一个简单的待办事项应用程序并将用户与待办事项关联起来][1]
我已将代码添加到数据库初始化程序中,只要模型发生变化,该程序就会运行。在执行 RoleExists
函数时出现了以下错误:
在 mscorlib.dll 中发生了系统操作异常(System.InvalidOperationException 实体类型 IdentityRole 不是当前上下文模型的一部分。
protected override void Seed (MyContext context)
{
var UserManager = new UserManager<ApplicationUser>(new UserStore<ApplicationUser>(context));
var RoleManager = new RoleManager<IdentityRole>(new RoleStore<IdentityRole>(context));
// Create Admin Role
string roleName = "Admins";
IdentityResult roleResult;
// Check to see if Role Exists, if not create it
if (!RoleManager.RoleExists(roleName))
{
roleResult = RoleManager.Create(new IdentityRole(roleName));
}
}
如蒙帮助,不胜感激。
开始了
var roleManager = new RoleManager<Microsoft.AspNet.Identity.EntityFramework.IdentityRole>(new RoleStore<IdentityRole>(new ApplicationDbContext()));
if(!roleManager.RoleExists("ROLE NAME"))
{
var role = new Microsoft.AspNet.Identity.EntityFramework.IdentityRole();
role.Name = "ROLE NAME";
roleManager.Create(role);
}
作为对上述彼得斯代码的改进,您可以使用下面的代码:
var roleManager = new RoleManager<Microsoft.AspNet.Identity.EntityFramework.IdentityRole>(new RoleStore<IdentityRole>(new ApplicationDbContext()));
if (!roleManager.RoleExists("Member"))
roleManager.Create(new IdentityRole("Member"));