保持Session Alive MVC3

时间:2013-03-11 13:26:50

标签: asp.net-mvc-3 jquery

我已经查看了各种jquery,ajax,图像重新加载实现并尝试了所有这些。他们都没有为我工作。

我正在尝试在以下代码段中实现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");
}

1 个答案:

答案 0 :(得分:5)

你的心跳应该能够通过ajax请求使会话保持活动状态,但我还要确保它不会通过记录最后一次(最初是页面加载时间)的时间戳来为每次点击和按键触发一次,并且不会触发另一个ajax请求,直到接近会话或表单身份验证超时(如果您使用表单身份验证)。