2013-03-11 3 views
1

Я рассмотрел различные реализации jquery, ajax, reload, и попробовал их все. Никто из них не работал для меня.Keep Session Alive MVC3

Я пытаюсь реализовать функцию heartbeat() в следующем фрагменте кода. Это сердцебиение должно поддерживать мою сессию до тех пор, пока пользователь набирает или нажимает на страницу. Он должен истечь через заданное время и автоматически перенаправить пользователя на страницу входа в систему.

Проблема, с которой я столкнулся, заключается в том, что даже если она не перенаправляет пользователя на страницу входа в систему, когда пользователь нажимает кнопку «отправить» в форме, она перенаправляет их на страницу входа с момента окончания сеанса.

document.onkeypress = function(e) { 
    heartbeat(); 
    clearTimeout(timer); 
    timer = setTimeout('RedirectToWelcomePage()',parseInt(sessionTimeout) * 30 * 1000); 
}; 

document.onclick = function(e) { 
    heartbeat(); 
    clearTimeout(timer);  
    timer = setTimeout('RedirectToWelcomePage()',parseInt(sessionTimeout) * 30 * 1000); 
}; 


function heartbeat() {// need to implement 
} 


function RedirectToWelcomePage() 
{ 
    window.location.replace("/Account/LogOn"); 
} 

ответ

5

Ваш пульс должен быть в состоянии держать сессию в живых с AJAX запроса, но я хотел бы также убедиться, что он не срабатывает один от за каждый клик и нажатием клавиши, регистрируя метку последнего (первоначально время загрузки страницы) и не запускать другой запрос ajax до закрытия сеанса ИЛИ время ожидания проверки подлинности формы (если вы используете формы auth).

+0

Thanks Jeff! Я неправильно использовал часть ajax. – paaone