2011-02-02 12 views
2

ユーザーが恋人であるかセッションが切れているかどうかを確認したい。彼らのセッションが期限切れになったとき(+/- 5分以内)に正確にkする必要があります。今、ユーザーがブラウザでページを開いたまま1日後に戻ると、1日後に何かをしようとすると期限切れになることがわかりますが、実際には1時間ほど使用していないとセッションが終了します。セッションがasp.netで期限切れになったときを検出する方法は?

サーバーで5分ごとにスクリプトを実行し、期限切れのセッションを確認してそれらを検出し、有効期限をdbに記録する必要があります。 このような短い間隔でサーバー上でスクリプトを継続的に実行させるにはどうすればよいですか? スクリプトは正確に何をしますか? これを行うより良い方法はありますか?

+0

なぜこれをやりたいですか? – Lazarus

答えて

10

global.asaxでは、Session_Endイベントをキャプチャできます。詳細については、この質問を参照してください:

(注)セッションが期限切れを待つ必要があるため5分のタイムアウトが、容易に可能ではないこと(=通常は20分。)あなたの前に非活動を検出することができる。したがって、短い間隔が本当に必要な場合は、

、あなたも

  • に必要な、あなたのユーザーが自分のセッションを失いたくない限り、(開いているブラウザと非アクティブの5分のセッションが破棄されることはありませんことを確認してくださいコーヒーを飲むためにコンピュータを出て行くとき)。このような「自動キープアライブ」は、例えば、using JavaScriptによって実施することができる。
+0

+1:私の答えよりもはるかに良い;) – Lazarus

+0

これは、SessionStateがInProcに設定されている場合にのみ機能します。異なる詳細を持つもう1つの質問:http://stackoverflow.com/questions/1262867/session-end-code-on-browser-close –

+1

セッションの存在を確認すると、それがリセットされますタイムアウトタイマーが存在する場合は... – hunter

関連する問題