如何在导入数据库后使用在ASP.NET MVC中的SQL Server中创建的角色?

如何在导入数据库后使用在ASP.NET MVC中的SQL Server中创建的角色?

问题描述:

我在Visual Studio 2013(快速的Web)创建一个新的ASP.NET MVC 5项目,我导入一个数据库,但是当我尝试使用如何在导入数据库后使用在ASP.NET MVC中的SQL Server中创建的角色?

if(User.IsInRole("Admin")) 

来验证用户的角色仍然是确定用户是普通用户,而不是Admin。我想知道如何在导入数据库后在控制器中获取用户角色?

而且,如何确保角色被导入到我的ASP.NET MVC应用程序?

+0

您需要设置角色管理器,请参阅此答案:https://*.com/a/39139606/5519026 – Ziyad

确保您的数据库中有必要的数据。您必须确定该角色位于“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); 
      } 
     } 
    } 
} 

没有理由编写您自己的角色管理器。