ASP.Net セッションがタイムアウトするたびに、ユーザーをセッション タイムアウト ページにリダイレクトする必要があります。私たちはほとんどのコンテンツを AJAX 呼び出しで取得し、ユーザーがデフォルト ページから移動することはありません。
サーバー側のコードを変更せずに、クライアント側 (Javascript) でセッション タイムアウトを検出する方法はありますか。HTTP ステータス コードを確認できますか?
敬具、
ASP.Net セッションがタイムアウトするたびに、ユーザーをセッション タイムアウト ページにリダイレクトする必要があります。私たちはほとんどのコンテンツを AJAX 呼び出しで取得し、ユーザーがデフォルト ページから移動することはありません。
サーバー側のコードを変更せずに、クライアント側 (Javascript) でセッション タイムアウトを検出する方法はありますか。HTTP ステータス コードを確認できますか?
敬具、
サーバーのセッションタイムアウトパラメーターと同じタイマーを設定するだけです。ユーザーがアクティブな場合、セッションはタイムアウトしません。ブラウザーを閉じると、セッションは自動的に終了します。したがって、唯一のケースは、ページが開かれたときですが、ユーザーは何もしていません。この場合、ajax リクエストを送信し続ける限りセッションを維持するか (バックグラウンドでこれを行うことができます)、非アクティブ時間を示すタイマーを設定することができます。
デフォルトでは、asp.net はセッションがタイムアウトしたときに特別なステータス コードを返しません。サーバー側でこれを検出し、セッションがタイムアウトした場合に特定のステータス コードを設定できます。カスタム ヘッダーを設定したり、セッションがタイムアウトしたときに特定の方法でコンテンツを構成して、クライアント側のコードに通知することもできます。
同様のシナリオがいくつかあり、次のコードで問題が解決しました。//マスター ページ: //180 はセッション タイムアウト時間です…. function SessionTimeOuts() { self.setTimeout("RedirectToLogin();", '180'); }
function RedirectToLogin() {
window.location.href = '../login.aspx';
}
</script>
マスター ページ ボディ タグで onload= "SessionTimeOuts()" を使用