ユーザーがサイトを離れたことを検出し、.Net セッションをすぐに期限切れにするシナリオがあります。フォーム認証を使用しています。すでにあるセッション タイムアウトについて話しているのではありません。ユーザーがリンクを介して、アドレスを入力するか、ブックマークをたどることによって、いつ私たちのサイトから離れたのかを知りたいと思っています。彼らが私たちのサイトに戻ってきたら、たとえすぐにでも、再度ログインする必要があります (これはユーザビリティーが良くないことを理解しています - これは私たちのクライアントから与えられたセキュリティ要件です)。
私の最初の本能は、これは不可能であるか、解決策が非常に信頼できないものになるということです。私たちが思いついた唯一の解決策は次のとおりです。
- ユーザーがサイトを離れたときにセッションをログアウトするようにサーバーに指示する JavaScript onBlur イベント ハンドラーを追加します。
- ユーザーがログインしたら、HTTP リファラーをチェックして、ユーザーがサイト内からナビゲートしたことを確認します。
- AJAX ポーリングをサーバーに追加して、セッションを最新の状態に保ちます (おそらく 10 秒間隔)。電話が時間通りに受信されない場合、セッションは終了します。
onBlur は最も簡単な方法のようですが、おそらく信頼性が最も低い方法のようです。それが機能するかどうかはわかりません。ユーザーがサイト内のアドレスを入力してリンクをたどらない可能性があるため、リファラー メソッドにも問題があります。AJAX メソッドは機能するように見えますが、複雑です。バックエンドでの処理方法もわかりません。それが常に機能するとは限らないシナリオもあると思います。
どんなアイデアでも大歓迎です。ありがとう。