加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net – 如何将Controller上的Ajax reqest重定向到登录页面?

发布时间:2020-12-15 20:56:34 所属栏目:asp.Net 来源:网络整理
导读:[Authorize]public class MyController : BaseController{ [PermissionAuthorize] public ActionResult GridData() { return Json(data,JsonRequestBehavior.AllowGet); }} 我为特定操作的用户检查权限创建了PermissionAuthoize属性. 我遇到问题用户会话或故
[Authorize]
public class MyController : BaseController
{
    [PermissionAuthorize]
    public ActionResult GridData()
    {
        return Json(data,JsonRequestBehavior.AllowGet);
    }
}

我为特定操作的用户检查权限创建了PermissionAuthoize属性.
我遇到问题用户会话或故障单在此时间到期后如果用户向Controller发送ajax requrest,则Authorize属性拒绝该请求并以html登录表单的形式返回给user.this region用户认为应用程序未执行.它显示了对用户的不良影响.

所以,如果他们在票证过期时发送ajax请求,我想重定向到用户登录页面.

我可以为控制器创建另一个授权属性吗?

解决方法

您需要做的第一件事是配置表单身份验证模块,以便在抛出401时停止重定向到登录页面. Phil Haack写了一篇关于如何实现这一目标的 nice article.

完成后,您将能够在客户端上捕获401 HTTP状态代码.因此,当从服务器发送401状态代码时,您可以编写一个将重定向到登录页面的global ajax handler(这将在表单身份验证票证到期或用户未经过身份验证时发生):

$(document).ajaxError(function(event,jqxhr,settings,exception) {
    if (jqxhr.status == 401) {
        // unauthorized
        window.location.href = '/logon';
    }
});

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读