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がセッションをチェックすると、nullが検出され、パスワードを再度入力する必要があるというポップアップがユーザーに表示されることを期待しています。しかし、セッションがnullだとは決して思いません!! 何か案が?

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 に答える