【发布时间】:2017-12-18 05:17:05
【问题描述】:
我的目标是,如果用户点击一个指向他未经授权的页面的链接(或发布一个表单)的链接,我的目标是弹出一个模式窗口,因为它比重定向到一般错误页面更好的用户体验。
我所做的是实现
protected override void HandleUnauthorizedRequest(AuthorizationContext filterContext)
{
// ...
}
因此,如果请求是非 AJAX 请求,那么它会重定向到同一页面(给人一种停留在同一页面上的错觉)并在查询字符串中附加"forbiddenRedirect=true",然后 JavaScript 打开错误模式。我正在尝试比使用查询字符串更好的方法。据我所知,JavaScript 无法访问响应标头,只能访问 URL。这就是我选择查询字符串解决方案的原因。但也许在 MVC 中,我可以通过某种方式重定向并传递基本控制器可以识别的某种令牌,然后将某些内容添加到视图包中,例如 ViewBag.IsRedirectFromUnauthorizedAction = true。
有什么建议吗?
【问题讨论】:
标签: javascript c# asp.net asp.net-mvc asp.net-mvc-4