Sql server 导入数据库后,如何在ASP.NET MVC中使用SQL Server中创建的角色?
我在Visual Studio 2013(Express for Web)中创建了一个新的ASP.NET MVC 5项目,并导入了一个数据库,但当我尝试使用Sql server 导入数据库后,如何在ASP.NET MVC中使用SQL Server中创建的角色?,sql-server,asp.net-mvc,asp.net-mvc-4,Sql Server,Asp.net Mvc,Asp.net Mvc 4,我在Visual Studio 2013(Express for Web)中创建了一个新的ASP.NET MVC 5项目,并导入了一个数据库,但当我尝试使用 if(User.IsInRole("Admin")) 它仍然将用户标识为普通用户,而不是管理员。我想知道如何在导入数据库后获得控制器中的用户角色 还有,如何确保将角色导入到我的ASP.NET MVC应用程序中?确保数据库中有必要的数据。您必须确保角色位于“AspNetRoles”表中,并且用户链接在“AspNetUserRoles”表中。
if(User.IsInRole("Admin"))
它仍然将用户标识为普通用户,而不是管理员。我想知道如何在导入数据库后获得控制器中的用户角色
还有,如何确保将角色导入到我的ASP.NET MVC应用程序中?确保数据库中有必要的数据。您必须确保角色位于“AspNetRoles”表中,并且用户链接在“AspNetUserRoles”表中。为了确保您有数据,可以使用以下种子:
public static class RoleSeeder
{
public static void Seed()
{
CreateRole("Admin", "Administratie", "Administratie");
...
}
private static void CreateRole(string name, string description, string group)
{
using (var db = new DbContext())
{
if (!db.Roles.Any(r => r.Name == name))
{
var role = new Role { Name = name, Description = description, Group = group };
var store = new RoleStore<Role>(db);
var manager = new RoleManager<Role>(store);
manager.Create(role);
}
else
{
var store = new RoleStore<Role>(db);
var manager = new RoleManager<Role>(store);
var dbRole = manager.FindByName(name);
dbRole.Description = description;
dbRole.Group = group;
manager.Update(dbRole);
}
}
}
}
公共静态类角色编辑器
{
公共静态无效种子()
{
CreateRole(“管理员”、“管理员”、“管理员”);
...
}
私有静态void CreateRole(字符串名称、字符串描述、字符串组)
{
使用(var db=new DbContext())
{
if(!db.Roles.Any(r=>r.Name==Name))
{
var role=新角色{Name=Name,Description=Description,Group=Group};
var存储=新角色存储(db);
var经理=新角色经理(门店);
创建(角色);
}
其他的
{
var存储=新角色存储(db);
var经理=新角色经理(门店);
var dbRole=manager.FindByName(名称);
dbRole.Description=描述;
dbRole.Group=Group;
manager.Update(dbRole);
}
}
}
}
没有理由编写自己的角色管理器。确保数据库中有必要的数据。您必须确保角色位于“AspNetRoles”表中,并且用户链接在“AspNetUserRoles”表中。为了确保您有数据,可以使用以下种子:
public static class RoleSeeder
{
public static void Seed()
{
CreateRole("Admin", "Administratie", "Administratie");
...
}
private static void CreateRole(string name, string description, string group)
{
using (var db = new DbContext())
{
if (!db.Roles.Any(r => r.Name == name))
{
var role = new Role { Name = name, Description = description, Group = group };
var store = new RoleStore<Role>(db);
var manager = new RoleManager<Role>(store);
manager.Create(role);
}
else
{
var store = new RoleStore<Role>(db);
var manager = new RoleManager<Role>(store);
var dbRole = manager.FindByName(name);
dbRole.Description = description;
dbRole.Group = group;
manager.Update(dbRole);
}
}
}
}
公共静态类角色编辑器
{
公共静态无效种子()
{
CreateRole(“管理员”、“管理员”、“管理员”);
...
}
私有静态void CreateRole(字符串名称、字符串描述、字符串组)
{
使用(var db=new DbContext())
{
if(!db.Roles.Any(r=>r.Name==Name))
{
var role=新角色{Name=Name,Description=Description,Group=Group};
var存储=新角色存储(db);
var经理=新角色经理(门店);
创建(角色);
}
其他的
{
var存储=新角色存储(db);
var经理=新角色经理(门店);
var dbRole=manager.FindByName(名称);
dbRole.Description=描述;
dbRole.Group=Group;
manager.Update(dbRole);
}
}
}
}
没有理由编写您自己的角色管理器。您需要设置角色管理器,请参阅此答案:您需要设置角色管理器,请参阅此答案: