тайм-аут сеанса с аутентификацией формы, как отобразить модальный poup или перенаправить всю страницу - PullRequest
1 голос
/ 01 апреля 2010

Я использую asp.net mvc и jquery для выполнения ajax-запросов, и когда время ожидания сеанса после ajax-запроса загружается, вся страница sigin загружается в мой ajax div.

Как я могу отобразить модальное всплывающее окно вместо перенаправления при истечении времени сеанса?

Ответы [ 2 ]

2 голосов
/ 01 апреля 2010

Один из способов справиться с этим - использовать собственный заголовок HTTP:

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

И в вашем действии LogOn вы устанавливаете соответствующий заголовок:

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

    return View();
}
0 голосов
/ 05 октября 2010

Мое решение - всего пять строк JavaScript

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

Поместите это на страницу входа. Если он загружен в div на главной странице, он будет перенаправлен на страницу входа. «#site» - это идентификатор div, который находится на всех страницах, кроме страницы входа.

...