我想使用...
保护我的MVC控制器操作[PrincipalPermission(SecurityAction.Demand, Role="Administrator")]
但是,如果用户不在此角色中,则SecurityException“请求主体权限失败”。被代码抛出。
似乎无法处理此错误,即使[Handle]错误也无法捕获它。
我想要的是捕获安全例外,然后将用户重定向到我的登录页面(或路由)的方法。
或者,编写我自己的动作过滤器的一些方法,我可以添加到任何方法,例如。
[MustBeAnAdministrator]
...将检查用户是否处于正确的角色,并重定向它们。但是,我似乎无法在动作过滤器中使用重定向。
感谢。
答案 0 :(得分:1)
在我们的MVC项目中,我们使用
<Authorize(Roles:="Administrators")>
MembershipProvider给出的功能 - 我们符合我们的条件。如果用户未登录,他将被转发到登录屏幕。