2011-02-23 100 views
1

我正在使用ASP.NET MVC 3.請原諒我的術語。我們將角色分配給工作中的某些人,然後我們使用Windows身份驗證來確定用戶具有的角色。可以說角色是RoleA,RoleB和RoleC。所以現在我得到一個用戶角色列表。讓我們說UserA屬於RoleA和RoleB。我的一些觀點需要認證,因爲不是每個人都可以查看某些觀點。可以說,ViewA只能由屬於角色RoleA和RoleB的用戶查看。我將如何做到這一點?我需要看什麼?當不屬於這些角色的用戶嘗試訪問視圖時,他/她應該被重定向到錯誤頁面。基於角色的某些視圖的用戶權限

此外,我需要某種幫助方法來檢查這些角色以及在我的視圖中用來隱藏/顯示某些控件。哪裏是使用這個最好的地方?

任何示例代碼/文章將不勝感激。

回答

2
[Authorize(Roles = "RoleA,RoleB")] 
public ActionResult Foo() 
{ 
    return View(); 
} 

如果你想檢查角色的觀點:

@if (User.IsInRole("RoleA")) 
{ 
    <div>This will be visible only to users in RoleA</div> 
} 
+0

是不是更好的傳遞,如果用戶通過視圖模型是在角色? – LukLed 2011-02-23 13:24:34

+0

@Darin:我如何將角色添加到角色集合中? – 2011-02-23 14:01:36

+0

@Darin:如果用戶沒有訪問權限,我會在哪裏指定它必須轉到通用錯誤頁面? – 2011-02-23 14:02:12