0

我的 SQL2008 DB 中有一个表用于用户,一个用于角色,然后是 UserRoles 桥接表。我正处于必须使用 RoleProvider 工作并使用 [Authorize(Roles = "Administrator,Developer")] 修饰我的一些操作的地步

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

我们在每个用户基础上构建站点导航,并在用户、他的角色和他所在角色允许查看的页面之间建立映射。我只想知道是否有任何方法可以更改 [Authorize(Roles = "")] 以从我的数据库中动态获取有权执行该操作的角色列表?这样我就不必去装饰我拥有的所有动作,它就像魔法一样从数据库中拉出来。

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

4

1 回答 1

0

我基本上编写了自己的继承自 AuthorizeAttribute 的 CustomAuthorize 类,并且在 OnAuthorization 中我进行了访问查找。如果用户没有访问权限,我基本上会这样做: filterContext.Result = new HttpUnauthorizedResult(); filterContext.Result = new RedirectResult("/accessDenied");

有效,我用以下方式装饰我的方法:[CustomAuthorize]

于 2011-01-03T22:30:33.217 回答