Asp.net 表单验证会话超时,如何显示模式poup或重定向整个页面

Asp.net 表单验证会话超时,如何显示模式poup或重定向整个页面,asp.net,jquery,asp.net-mvc,session,forms-authentication,Asp.net,Jquery,Asp.net Mvc,Session,Forms Authentication,我使用asp.NETMVC和jquery发出ajax请求,当会话在ajax请求后超时时,完整的sigin页面将加载到我的ajax div中 会话超时时,如何显示模式弹出窗口而不是重定向 处理这个问题的一种方法是使用自定义HTTP头: $.ajax({ url: '/home/someaction', data: {}, success: function(html, status, xhr) { if (xhr.getResponseHeader('REQ

我使用asp.NETMVC和jquery发出ajax请求,当会话在ajax请求后超时时,完整的sigin页面将加载到我的ajax div中


会话超时时,如何显示模式弹出窗口而不是重定向

处理这个问题的一种方法是使用自定义HTTP头:

$.ajax({
    url: '/home/someaction',
    data: {},
    success: function(html, status, xhr) {
        if (xhr.getResponseHeader('REQUIRES_AUTH') === '1') {
            alert('SESSION EXPIRED!!!');
        } else {
            $('#result').html(html);
        }
    }
});
并在登录操作中设置相应的标题:

public ActionResult LogOn()
{
    Response.AddHeader("REQUIRES_AUTH", "1");

    return View();
}

我的解决方案只有五行JavaScript

    $(document).ready(function () {
        if ($("#site").length > 0) {
            window.location = "<%= Url.Content("~") %>" + "Login/LogOn";
        }
    });
$(文档).ready(函数(){
如果($(“#站点”)。长度>0){
window.location=”“+“登录/登录”;
}
});

把它放在登录页面上。如果在主页上的div中加载了,它将重定向到登录页面。“#site”是div的id,位于除登录页以外的所有页面上。

感谢您的评论。我确实尝试过你的解决方案,它有助于让我有一个正确的开始。我最终找到了这个插件来做我需要的事情。