捕获ASP.Net MVC原理权限属性异常

时间:2010-01-10 16:45:01

标签: asp.net asp.net-mvc security permissions action-filter

我想使用...

保护我的MVC控制器操作
[PrincipalPermission(SecurityAction.Demand, Role="Administrator")]

但是,如果用户不在此角色中,则SecurityException“请求主体权限失败”。被代码抛出。

似乎无法处理此错误,即使[Handle]错误也无法捕获它。

我想要的是捕获安全例外,然后将用户重定向到我的登录页面(或路由)的方法。

或者,编写我自己的动作过滤器的一些方法,我可以添加到任何方法,例如。

[MustBeAnAdministrator]

...将检查用户是否处于正确的角色,并重定向它们。但是,我似乎无法在动作过滤器中使用重定向。

感谢。

1 个答案:

答案 0 :(得分:1)

在我们的MVC项目中,我们使用

<Authorize(Roles:="Administrators")>

MembershipProvider给出的功能 - 我们符合我们的条件。如果用户未登录,他将被转发到登录屏幕。