2011-02-23 97 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