我的SQL2008数据库中有一个表用于用户,一个表用于角色,然后是UserRoles桥接表。我正处于使用RoleProvider工作的地步,并使用[Authorize(Roles =“Administrator,Developer”)]
来装饰我的一些操作。我实际上是在每个用户的网站上构建导航,因此RoleProvider只是为了防止较低级别的用户从他的Admin buddy获取URL并转到他不应该访问的页面。
我们在每个用户群上构建网站导航,并在用户,他的角色和允许他看到的角色的页面之间建立映射。我只是想知道是否有任何方法可以更改[Authorize(Roles =“”)]以从我的数据库中动态获取具有该操作权限的角色列表?这样我就不必去装饰我所拥有的所有动作,它只会被魔法从数据库中拉出来。
一个简单的例子将不胜感激,谢谢。 千斤顶
答案 0 :(得分:0)
我基本上编写了自己的CustomAuthorize类,它继承自AuthorizeAttribute,在OnAuthorization中我进行了查找以进行访问。如果用户没有访问权限,我基本上会这样做: filterContext.Result = new HttpUnauthorizedResult(); filterContext.Result = new RedirectResult(“/ accessDenied”);
Works,我用以下方法装饰我的方法:[CustomAuthorize]