我有一个名为Authorization
与CodeFirstRoleProvider
类从默认RoleProvider
MVC4:在数据库中添加角色
public class CodeFirstRoleProvider : RoleProvider
{
public override void CreateRole(string roleName)
{
if(string.IsNullOrEmpty(roleName)) return;
using(var context = new SISContext())
{
var role = context.Roles.SingleOrDefault(rl => rl.RoleName == roleName);//Roles table exists in database
if(role == null)
{
var newRole = new Role
{
RoleId = Guid.NewGuid(),
RoleName = roleName
};
context.Roles.Add(newRole);
context.SaveChanges();
}
}
}
}
继承了我的其他项目WebPortal
我想用上述方法的项目让我们说下面的方式
var _role = new CodeFirstRoleProvider();
_role.CreateRole("Admin");
_role.CreateRole("NonAdmin");
现在我需要把这段代码放在我的webportal
的哪里?以便这些角色在应用程序运行时第一次被添加到数据库中。
假设这个程序第一次运行,有人点击注册按钮我想有一个提到上述角色的下拉列表。所以,这些角色需要在点击注册之前在数据库中。
一旦角色在数据库中,我不需要担心将来访问这些值。 一种方法是手动将值写入数据库,但我不想这样做,因为我有这个功能可以使用。
什么是CodeFirstRoleProvider()? – msysmilu