asp.net Web アプリケーションについて質問があります。SQL Server セッション状態を使用する Web アプリケーション。ログアウト イベントはセッションを削除できますが、タイトル バーの [閉じる] ボタンを押すとセッションが削除されます。タイトル バーの閉じるボタンを押したときに制御できるイベント。タイトルバーの閉じるボタンを押したときに session_end イベントがキャッチできることについて読みました。ただし、SQL Server セッション状態を使用して session_end イベントを発生させることはできません。どのようにキャッチすることができますか?
1 に答える
0
ブラウザーを閉じても、サーバー上のセッションは終了しません。サーバーは、開いているブラウザーと閉じているブラウザーの違いを認識できません。単に要求を受信して応答を送信し、別の要求を待っているだけです。リクエストがない状態が一定時間続くと、セッションはタイムアウトになり、session_end イベントが実行されます。
セッションを終了したい場合は、サーバーがセッションを終了することを知るために、ブラウザを閉じたときに、ある種の ajax リクエストをサーバーに送り返す必要があります。
編集
jQueryを使用してこのようなことを行うことができます
$(window).unload(function() {
$.post('someurl');
});
someurl を、ブラウザーが閉じられたことをサーバーに伝える Web サービス、ハンドラー、または mvc コントローラー アクションなどの URL に置き換えます。
次に、サーバー側で行うだけです
Session.Abandon();
于 2012-06-28T10:08:13.407 に答える