我正在开发一个使用ASP.NET MVC和Visual Studio 2015的项目。我们正在使用Visual Studio附带的预生成数据库(我添加了其他表,但这不应该与这个。)我正在创建一个我希望定义为" Expert"的角色的注册页面。我需要AspNetRole表才能在其中使用此角色。如果我直接输入并直接输入数据库,我的其他项目成员就不会获得此信息。我已经找到了这个,但我得到的是如何为管理员创建一个字面上创建新角色的页面。我不要那个。我理解如何将用户设置为角色,但我需要首先在我的数据库中创建该角色。这是我的startup.cs文件中的内容吗?我确定如何或在何处这样做。任何其他信息也会有所帮助,因为我不熟悉角色。谢谢。
答案 0 :(得分:0)
我在类似情况下所做的是检查表中是否存在角色,如果没有,则添加:
var context = new DatabaseContext();
if(!context.AspNetRoles.any(x=>x.role.equals("roleName"))){context.AspNetRoles.Add(new AspNetRoles{Role="roleName"}); context.SaveChanges();}
//Follow the normal process, in that case now is created
答案 1 :(得分:0)
您可以在startup.cs
。
using Microsoft.AspNet.Identity;
using Microsoft.AspNet.Identity.EntityFramework;
public void Configuration(IAppBuilder app)
{
ConfigureAuth(app);
CreateRoles();
}
private void CreateRoles()
{
ApplicationDbContext _context = new ApplicationDbContext();
var roleManager = new RoleManager<IdentityRole>(new RoleStore<IdentityRole>(_context));
// creating Creating Expertrole
if (!roleManager.RoleExists("Expert"))
{
var role = new Microsoft.AspNet.Identity.EntityFramework.IdentityRole();
role.Name = "Expert";
roleManager.Create(role);
}
}