14

我希望能夠ASP.NET MVC 3:如何在控制器方法中獲取用戶角色?

  1. 獲取當前已通過身份驗證的用戶的角色列表。
  2. 根據用戶角色篩選提供給該​​用戶的數據。

我看到的方法來檢查用戶是否在一個特定的角色,但我不在乎他們參與什麼角色。數據庫將知道允許哪些角色查看哪些數據。我需要將這些角色的集合提交給數據服務,以根據這些角色過濾數據。

因此,第一步是如何在控制器方法中獲取與當前用戶關聯的所有角色?

編輯:

這似乎很好地工作了:

Roles.GetRolesForUser(User.Identity.Name) 

支持的答案仍然歡迎。

回答

22
Roles.GetRolesForUser(User.Identity.Name) 
+0

您是否回答了您自己的問題? – 2011-06-01 04:12:03

+6

嗯,它永遠在那裏,所以我可以刪除它,或者回答它。 :) – 2011-06-03 19:27:26

+12

有人回答他們自己的問題時最好有人來搜索時沒有明確定義的答案。謝謝你這樣做。 – 2011-12-12 20:36:27

10

如果有人需要這些信息,如果您的用戶有很多角色,但你正在尋找一個,你可以這樣做:(我想ID股)

@if (Request.IsAuthenticated) 
{ 
    string[] roles = Roles.GetRolesForUser(); 
    foreach (string role in roles) 
    { 
     if (role.Contains("admin")) 
     { 
      <li>@Html.ActionLink("Administration", "Admin", "Movies")</li> 
      break; 
     } 
    } 
} 
11

這是可以做到用一條語句:

User.IsInRole("admin"); 
+0

雖然這確實告訴你用戶是否在特定角色中,但它沒有解決要求如何獲得所有用戶角色的列表或數組的所有原始問題。 – Funka 2014-06-11 21:22:44

相關問題