VB.NETでのSession_Endイベントについて教えてください

解決


ミケル  2004-10-06 21:18:11  No: 116813

こんにちは。
VB.NETで、WEBアプリケーションの開発をしております。
ユーザがログインした際に、ログインテーブルに情報を書き込み、
セッションが切断された場合(ブラウザの×ボタン押下  or  タスクマネージャによる強制終了)に
ログインテーブルの情報をクリアする制御をいれようと思い、
Session_Endイベントにて、ログインテーブルに情報がある場合は、
クリアするようにコードを記述したのですが、
実行されません。
Session_Endイベントの使用方法を勘違いしているのでしょうか・・・。
一般的なログオン、ログオフの制御だと思うのですが、
どなたかお詳しい方、ご教授いただけますでしょうか。
また、参考URLなどありましたら、是非教えて頂きたいです。
よろしくお願い致します。。


魔界の仮面弁士  2004-10-07 07:01:28  No: 116814

> ブラウザの×ボタン押下  or  タスクマネージャによる強制終了

それらのタイミングでは、セッションは破棄されていないかと。
セッションが破棄されるのは、「Abandonが行われた時」か、または
「ブラウザからの要求が一定時間以上なかった時」になります。

基本的にWebサーバーは、ページを送信してしまえば、ブラウザ側の
ウインドウの状態を把握する事はできません。ブラウザの終了時に、
ブラウザからWebサーバーに情報を送信しているわけではありませんから。

設定した時間内に、そのセッションから http要求が無い場合や、
明示的に HttpSessionState.Abandon が呼び出された時に
セッションが破棄され、End イベントが発生する事になります。


ミケル  2004-10-07 16:51:17  No: 116815

ご返答ありがとうございます!
私もいろいろ調べてみましたが、
おっしゃるとおり、webサーバでは、ウインドウの状態を把握することが出来ないようですね。。。
webconfigで、タイムアウトの設定を5分にして、
5分間何も応答がない場合に、テーブルをクリアする処理にするようにしました。
これって一般的な方法なのでしょうか???


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加