2011-02-24 19 views
0

我正在使用ASP.NET MVC 3.基于客户用户属性的用户对视图的限制

我想创建一个操作筛选器以确定用户是否可以访问视图。我有一个用户类,如IsAdministrator,IsTrusteeUser和IsAuditUser属性。如果不属于某些角色,我将如何创建一个操作过滤器来阻止某些用户?

而且,我会如何在我的视图中使用它来隐藏/显示某些控件?我想感谢一些代码:)

回答

2

为什么要重新发明轮子?

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

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

如果不是这样,或者你可以通过实施IAuthorizationFilter实现自己的自定义授权过滤器。

+0

我没有使用任何类型的成员资格,我只是有一张表,说明用户是否是管理员用户,审计用户等。那么,您认为我必须创建一个自定义授权筛选器吗? – 2011-02-24 12:38:45

+0

@Brendan - 对,我的坏 - 如果你不使用内置的角色提供程序(这是单独的成员,afaik) - 你可能需要一个自定义的授权过滤器。 – RPM1984 2011-02-24 22:24:58

+0

只是一个简单的问题。我有一个包含用户的表格(员工编号)和我自己的表格以及其中的角色。可以使用角色成员资格吗?我将如何将其实施到我目前的系统中? – 2011-02-28 11:57:28

1
  1. 您可以实现IActionFilter接口编写用户访问权限检查,一些关于编码你可以找到 here

  2. 隐藏/显示这样的属性扩展在UI上某些控件,它不是ActionFilters的工作,而你应该要么使每个用户不同的意见,并相应地重定向他或者做一些

If/else

实现此目的。