作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
[Authorize]
public class MyController : BaseController
{
[PermissionAuthorize]
public ActionResult GridData()
{
return Json(data, JsonRequestBehavior.AllowGet);
}
}
我创建了 PermissionAuthoize 属性来检查用户对特定操作的权限。我有一个问题,当用户 session 或票证到期后,如果用户向 Controller 发送 ajax 请求,则授权属性会拒绝该请求并以 html 登录表单形式返回给用户。该区域用户认为应用程序未执行。它显示出对用户的不良影响。
所以,如果用户在票证过期时发送 ajax 请求,我想将用户重定向到登录页面。
我可以为 Controller 创建另一个授权属性吗?
最佳答案
您需要做的第一件事是配置表单例份验证模块,以在抛出 401 时停止重定向到登录页面。 Phil Haack 写了 nice article
关于如何实现这一目标。
完成此操作后,您将能够捕获客户端上的 401 HTTP 状态代码。所以你可以写一个global ajax handler
当从服务器发送 401 状态代码时,将重定向到登录页面(当表单例份验证票证过期或用户根本没有经过身份验证时会发生这种情况):
$(document).ajaxError(function(event, jqxhr, settings, exception) {
if (jqxhr.status == 401) {
// unauthorized
window.location.href = '/logon';
}
});
关于asp.net - 如何将 Controller 上未经授权的 Ajax 请求重定向到登录页面? 。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15403519/
我是一名优秀的程序员,十分优秀!