2017-10-17 16 views
1

我在Visual Studio 2013(快速的Web)創建一個新的ASP.NET MVC 5項目,我導入一個數據庫,但是當我嘗試使用如何在導入數據庫後使用在ASP.NET MVC中的SQL Server中創建的角色?

if(User.IsInRole("Admin")) 

來驗證用戶的角色仍然是確定用戶是普通用戶,而不是Admin。我想知道如何在導入數據庫後在控制器中獲取用戶角色?

而且,如何確保角色被導入到我的ASP.NET MVC應用程序?

+0

您需要設置角色管理器,請參閱此答案:https://stackoverflow.com/a/39139606/5519026 – Ziyad

回答

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); 
      } 
     } 
    } 
} 

沒有理由編寫您自己的角色管理器。

相關問題