【发布时间】:2011-03-14 05:02:27
【问题描述】:
我使用 Authorize 属性根据用户角色过滤控制器操作,但如果尝试未经授权的操作,用户将被重定向回登录页面。作为我的用户,我会觉得这令人困惑和恼火。
如何改为显示一条错误消息,通知用户他们需要某些角色,并保持在他们尝试操作的视图上?
【问题讨论】:
标签: asp.net asp.net-mvc authorization
我使用 Authorize 属性根据用户角色过滤控制器操作,但如果尝试未经授权的操作,用户将被重定向回登录页面。作为我的用户,我会觉得这令人困惑和恼火。
如何改为显示一条错误消息,通知用户他们需要某些角色,并保持在他们尝试操作的视图上?
【问题讨论】:
标签: asp.net asp.net-mvc authorization
您需要编写一个不返回HttpUnauthorizedResult 的自定义Authorize 属性。保持在同一个视图上也是一项艰巨的任务,因为您可能需要在请求之后保留所有上下文。
【讨论】:
Response.Redirect,或者在过滤器内返回ViewResult。
到目前为止我找到的解决方案是您需要在 _ViewStart 中保存当前页面的会话(可能是 MVC2 中的其他内容),然后在您的自定义授权类中使用它来重定向到页面并显示消息。
【讨论】: