MVC フォームを設計しましたが、ユーザーがブラウザーを閉じたときにセッションを終了したいと考えています。ブラウザーを再度開いた場合は、再度ログインする必要があります。
セッションを終了する必要があるか、Cookie をクリアする必要があるかどうかわかりません。必要な場合はどうすればよいですか。私の答えを見つけるのを手伝ってくれませんか...
ありがとうございました!
MVC フォームを設計しましたが、ユーザーがブラウザーを閉じたときにセッションを終了したいと考えています。ブラウザーを再度開いた場合は、再度ログインする必要があります。
セッションを終了する必要があるか、Cookie をクリアする必要があるかどうかわかりません。必要な場合はどうすればよいですか。私の答えを見つけるのを手伝ってくれませんか...
ありがとうございました!
以下を使用できます。
function del_cookie(name) {
document.cookie = name + '=; expires=Thu, 01-Jan-70 00:00:01 GMT;';
}
<body onload="SetCookie()" onunload="del_cookie()">
ソースはこちら
自分で修正してみる
In-Procセッション モードを使用している場合、global.asax ファイルでセッション タイムアウト イベントを取得できます。したがって、Cookie やその他のユーザー固有のスタブを作成している場合は、このイベントを使用してそれらを消去できます。
Global.asax.cs 内
protected void Session_End(object sender, EventArgs e)
{
//Clean-up Code
}
Out-Procモードの場合、セッション タイムアウト イベントは発生しません。
トミーが言ったように、誰かがブラウザを閉じたかどうかを判断するための絶対確実な方法はありませんが、Jquery でそれを行うことができます。特定の時間間隔でサーバーに ping を実行する必要があります。したがって、特定の期間が経過した後にクライアントからの取得を停止すると、クリーニング操作を実行できます (セッション タイムアウトと同じ)。
あなたが試すことができます 。ブラウザーのクローズまたはページのオンロード イベントで、JavaScript から Cookie を削除するか、ブラウザーのクローズ イベント (またはページのアンロード イベント) で、サーバーで呼び出しを行い、サーバーでセッションをクリアします。