多くのサイト (銀行の Web サイトなど) - セッションが期限切れになる前に、ログアウト + 1 分間の警告を実装します (20 分)。
(このトピックはあまり議論されていません - 見られる唯一の質問は、asp.net メンバーシップの使用に関するものです - 私は使用しません)
各ユーザーはsession["lastActionTime"]
このセッションは、次の場合に現在の時刻に更新されます:
- ページが読み込まれました
- Ajax リクエストが実行されました (ユーザーの操作により)
今 - ページが読み込まれると、セッション値を設定します。(19:00としましょう)
また、すべての ajax リクエストに対して (私のサイトはポストバックを作成しません - ajax jquery のみ) -IRequiresSessionState
セッションを現在の時刻に更新する ASHX ハンドラーを使用します。
私はこのようなものを使用します:
jQuery(document).ajaxStart(function(){
gotoHandlerAndUpdateSessionTime();
})
ここで、警告メッセージの前の 1 分間の部分 (「セッションの有効期限が切れようとしています」):
すべての ajax リターン イベントまたはpage load
イベント - 私はjavascriptsetInterval
でアクティブ化します:[sessionTime-1]
分 (20-1=19)。(そしてもちろん - すべての前の setIntervals をキャンセルします...)
イベント (setInterval) が発生したとき - 有効期限の 1 分前: (19 分)
警告 div を表示し、ユーザーはexitまたはを選択できますstay。
質問 :
1) ユーザーが警告 div で何も押さなかった場合、( divを表示してから 1 分後に) どうすればログアウトできますか? div を表示するときに 1 分の setTimeout を開き、(何も押されていない場合) ログアウトする必要がありますか?
2)それは正しい方法ですか?
3) この奇妙な話全体にクッキーが必要ではないですか? :-)
(メンバーシップなし、またはフォーム認証でお願いします)。この質問には PHP のタグも付けています。これは、PHP プログラマーにも関連していることを知っているので、彼らの知識を聞きたいからです。