1

asp.net アプリケーションでセッションがタイムアウトした場合、ユーザーが既に開いているすべての Web ページを閉じる必要があります。

各ページにはサインアウト リンクがあります。ユーザーがそのリンクをクリックすると、ホームページがそのページにリダイレクトされます。

この場合、開いている他のページも閉じる必要があります。

どうすればこれを行うことができますか?

4

3 に答える 3

1

For all pages:

  1. AJAX call back to server to check whether Session has expired.
  2. Parse result from AJAX
  3. If session ended then close window or redirect to logged out page.
于 2009-12-18T07:45:40.430 に答える
0

Razzie がコメントしたように、同じ Web アプリケーションに対して AJAX コールバックを実行すると、セッションが維持されます。Web サービスを使用しても問題は解決しません。

この解決策は、セッションの存続を回避します。

  • すべてのセッションをデータベースに保存します。Session_Startこれは、ログイン中またはログイン後のイベントで実行できますGlobal.asax
  • Session_Endファイル内のイベントGlobal.asaxまたはログアウト後に、データベースからタイムアウト セッションを削除します。
  • の Web アプリケーション (サブドメインで実行されている Web など)に対して定期的に AJAX コールバックを実行して、セッションがまだ存在するかどうかをデータベースにチェックインします。

SessionID を使用してセッションを識別することをお勧めします。

于 2009-12-18T14:02:06.817 に答える
0

2番目の考えでは...特にユーザーが正式にサインアウトするときに@thephpdeveloperが言ったことを使用できます...(サインアウトボタンをクリックするなど)正式なサインアウトが発生した後...そのようなAjaxコールバックを使用できます。セッションは有効になりますが、ユーザーは存在しません...これを使用して、ページにシグナルを送信し、ブラウザ ウィンドウを閉じることができます

于 2009-12-18T08:05:00.797 に答える