0

我正在尝试使用此 jquery 函数每 5 秒检查一次会话是否仍然存在

setTimeout(IsSessionAlive, 5000);

 function IsSessionAlive()
 {
    $.getJSON('@Url.Action("IsSessionAlive", "Account")', function (isAlive) {
       if (!isAlive)
         alert(isAlive);
         setTimeout(IsSessionAlive, 5000);
     });
 }

这就是我试图从服务器获取会话状态的方式

public JsonResult IsSessionAlive()
{
   var isA = Request.IsAuthenticated;
   return Json(Session["LoggedIn"] != null, JsonRequestBehavior.AllowGet);
}

只是为了测试我在 LogOn 上执行此操作的代码

Session["LoggedIn"] = true;
Session.Timeout = 1;

我希望它应该在 1 分钟不活动后销毁会话,当我的 jquery 检查会话时,它会发现它为空,并向用户显示您必须再次输入密码的弹出窗口。但我从来没有发现会话无效!任何想法?

4

1 回答 1

0

您可以使用jQuery idleTimer 插件检测空闲超时并在超时发生时显示弹出窗口。

示例代码:

// idleTimer() takes an optional argument that defines the idle timeout
// timeout is in milliseconds; defaults to 30000
$.idleTimer(10000);


$(document).bind("idle.idleTimer", function(){
 // function you want to fire when the user goes idle
});


$(document).bind("active.idleTimer", function(){
 // function you want to fire when the user becomes active again
});

// pass the string 'destroy' to stop the timer
$.idleTimer('destroy');
于 2013-01-02T13:43:43.977 回答