asp.net-mvc-3 - 保持 session 事件 MVC3

标签 asp.net-mvc-3 jquery

我研究了各种 jquery、ajax、图像重新加载实现并尝试了所有这些。他们都没有为我工作过。

我正在尝试在以下代码片段中实现 heartbeat() 函数。只要用户在页面上键入或单击,此心跳就需要使我的 session 保持事件状态。它应该在设置的时间后超时并自动将用户重定向到登录页面。

我遇到的问题是,即使它没有将用户重定向到登录页面,但当用户单击表单上的“提交”时,由于 session 已超时,它会将用户重定向到登录页面。

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");
}

最佳答案

您的心跳应该能够通过 ajax 请求保持 session 处于事件状态,但我也会通过记录最后一次的时间戳(最初是页面加载时间)来确保每次单击和按键时它不会触发一次,并且在接近 session 或表单例份验证超时之前不会触发另一个 ajax 请求(如果您使用表单例份验证)。

关于asp.net-mvc-3 - 保持 session 事件 MVC3,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15339798/

相关文章:

.net - 具有用于不同ASP.NET MVC 3区域的不同登录页面

c# - 在 Model ValidationProvider 中使用反射有多糟糕?

javascript - 进度条隐藏页面直到页面完全加载

javascript - 我的 html 选择代码选择所有 html 框

javascript - 在 iframe 中获取 innerdiv 的 id

Asp.net MVC 3 用户帐户和配置文件

linq - 在 ASP.NET MVC 3 中执行动态 View 模型的最简单方法

jquery - 使用 jQuery 和 JSONP 跨域检索 html

javascript - div 顶部的文本标签

jquery - CSS:仅将样式应用于两个类的组合而不是其他类