1

さまざまな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");
}
4

1 に答える 1

5

あなたのハートビートは ajax リクエストでセッションを維持できるはずですが、最後のタイムスタンプ (最初はページの読み込み時間) をログに記録することで、クリックとキーを押すたびに 1 つ起動しないようにします。セッションに近づくまで別の ajax リクエストを送信するか、フォーム認証のタイムアウト (フォーム認証を使用している場合)。

于 2013-03-11T13:33:27.377 に答える