表单身份验证的会话超时,如何显示模式弹出或重定向整个页面

发布于 2024-08-27 00:00:05 字数 126 浏览 6 评论 0原文

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

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

I am using asp.net mvc and jquery to make ajax requests and when the session times out after an ajax request the full sigin page gets loaded into my ajax div.

How can I display a modal popup instead of making a redirect when a session times out?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

霞映澄塘 2024-09-03 00:00:05

我想到的一种处理此问题的方法是使用自定义 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();
}

One way to handle this that comes to mind is to use a custom HTTP header:

$.ajax({
    url: '/home/someaction',
    data: {},
    success: function(html, status, xhr) {
        if (xhr.getResponseHeader('REQUIRES_AUTH') === '1') {
            alert('SESSION EXPIRED!!!');
        } else {
            $('#result').html(html);
        }
    }
});

And in your LogOn action you set the appropriate header:

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

    return View();
}
靑春怀旧 2024-09-03 00:00:05

我的解决方案只是将五行 JavaScript

    $(document).ready(function () {
        if ($("#site").length > 0) {
            window.location = "<%= Url.Content("~") %>" + "Login/LogOn";
        }
    });

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

My solution is just five lines of JavaScript

    $(document).ready(function () {
        if ($("#site").length > 0) {
            window.location = "<%= Url.Content("~") %>" + "Login/LogOn";
        }
    });

Put it on the login page. If is was loaded in a div on the main page, it will redirect til the login page. "#site" is a id of a div which is located on all pages except login page.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文