2010-12-15 93 views
0

我在SQL2008数据库中为用户提供了一个表,然后在User角色和UserRoles桥接表中添加了一个表。我处于必须使用RoleProvider工作的地步,并用[授权(角色=“管理员,开发人员”)修饰了我的部分操作]MVC2从SQL授权角色

实际上,我在每个用户的网站上构建导航,因此RoleProvider只是为了防止较低级别的用户从他的管理伙伴那里获取URL并转到他不应该访问的页面。

我们针对每个用户群建立网站导航,并在用户,他的角色和他所在角色的页面之间建立映射。我只想知道是否有任何方法可以通过[Authorize(Roles =“”)]从我的数据库中动态获取具有该操作权限的角色列表?这样我就不必去装饰我拥有的所有动作,它只会从数据库中拉出,就像通过魔法一样。

一个简单的例子将不胜感激,谢谢。 杰克

回答

0

我基本上写了我自己的CustomAuthorize类,它继承了AuthorizeAttribute,并且在OnAuthorization中我做了查找访问。如果用户没有访问我基本上做: filterContext.Result = new HttpUnauthorizedResult(); filterContext.Result = new RedirectResult(“/ accessDenied”);

工程,我装饰我的方法:[CustomAuthorize]