我在Visual Studio 2013(Express for Web)中创建了一个新的ASP.NET MVC 5项目,我导入了一个数据库,但当我尝试使用
验证用户角色时if(User.IsInRole("Admin"))
它仍然将用户标识为普通用户,而不是管理员。我想知道在导入数据库后如何在控制器中获取用户角色?
而且,如何确保将角色导入我的ASP.NET MVC应用程序?
答案 0 :(得分:0)
确保您的数据库中包含必要的数据。您必须确保该角色位于" 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);
}
}
}
}
没有理由写自己的角色经理。