Плагин JQuery idleTimeout: как отобразить диалоговое окно после истечения времени ожидания сеанса на странице ASP.NET MVC - PullRequest
2 голосов
/ 01 мая 2010

Я работаю над переносом приложения ASP.NET в MVC Framework. Я реализовал время ожидания сеанса для InActiveUser с помощью плагина JQuery idleTimeout.

Я установил время простоя на 30 минут, как показано ниже на моей главной странице. Таким образом, после истечения 30 минут сеанса пользователя в течение нескольких секунд отображается диалоговое окно «Автоматический выход из системы», в котором говорится, что « Вы собираетесь выйти из-за отсутствия активности »

Теперь после этого один раз пользователь выходит из системы и перенаправляется на домашнюю страницу. Здесь я снова хочу показать диалог и должен оставаться там, говоря « Вы вышли из системы », пока пользователь не нажмет на него.

Вот мой код на главной странице:

$(document).ready(function() {
        var SEC = 1000;
        var MIN = 60 * SEC;
        // http://philpalmieri.com/2009/09/jquery-session-auto-timeout-with-prompt/
        <% if(HttpContext.Current.User.Identity.IsAuthenticated) {%>
         $(document).idleTimeout({
            inactivity: 30 * MIN,
            noconfirm : 30 * SEC,
            redirect_url: '/Account/Logout',
            sessionAlive: 0, // 30000, //10 Minutes
            click_reset: true,
            alive_url: '',
            logout_url: ''
            });
        <%} %>

}

Метод Logout () в контроллере учетной записи:

 public virtual ActionResult Logout() {
        FormsAuthentication.SignOut();
        return RedirectToAction(MVC.Home.Default());
    }

Ценю ваши ответы.

Ответы [ 2 ]

1 голос
/ 01 мая 2010

Как насчет того, чтобы вместо перенаправления на URL-адрес, вы перенаправляете на функцию javascript, которая сначала выполняет все, что вы хотите, а затем перенаправляете на URL-адрес внутри javascript.

function logout() {
    alert('You are about to be signed out due to Inactivity');
    window.location = '/Account/Logout';
}

$(document).ready(function() {
    var SEC = 1000;
    var MIN = 60 * SEC;
    // http://philpalmieri.com/2009/09/jquery-session-auto-timeout-with-prompt/
    <% if(HttpContext.Current.User.Identity.IsAuthenticated) {%>
     $(document).idleTimeout({
        inactivity: 30 * MIN,
        noconfirm : 30 * SEC,
        redirect_url: 'javascript:logout()',
        sessionAlive: 0, // 30000, //10 Minutes
        click_reset: true,
        alive_url: '',
        logout_url: ''
        });
    <%} %>

p / s: хотя мне интересно, в чем разница между параметрами redirect_url и logout_url.

0 голосов
/ 14 августа 2012

Попробуйте Оповещение с использованием Jquery из моего блога:

  • Время сеанса установлено на тайм-аут (например, 30 минут).
  • По истечении времени сеанса пользователь выходит из системы.
  • Показать обратный отсчет, чтобы пользователь знал, как долго осталось.
  • Сообщите пользователю, когда он приближается к пределу (например, осталось 5 минут).
  • Сообщите пользователю, что он был автоматически отключен из-за неактивности.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...