用户对基于客户用户属性的视图的限制

时间:2011-02-24 10:03:33

标签: asp.net asp.net-mvc asp.net-mvc-2 asp.net-mvc-3

我正在使用ASP.NET MVC 3。

我想创建一个动作过滤器来确定用户是否可以访问视图。我有一个User类,其中包含IsAdministrator,IsTrusteeUser和IsAuditUser等属性。如果不属于某些用户,我如何创建一个动作过滤器来阻止某些用户?

另外我如何在我的视图中使用它来隐藏/显示某些控件?我会赞赏一些代码:)

2 个答案:

答案 0 :(得分:2)

为什么重新发明轮子?

[Authorize]操作过滤器放在操作/控制器上,指定所需的角色:

[Authorize(Roles = "Administrator")]
public ActionResult SomeAdminPage() { // }

或者,您可以通过实施IAuthorizationFilter来实施自己的自定义授权过滤器。

答案 1 :(得分:1)

  1. 您可以实现IActionFilter接口,为用户访问权限检查编写这样的属性扩展,稍微了解一下您可以找到的编码 here

  2. 要隐藏/显示UI上的某些控件,它不是ActionFilters的工作,而是应该为每个用户创建单独的视图并相应地重定向或执行某些操作

  3.   

    如果/其他

    实现这个目标。