私のasp.netアプリケーションでは、ブラウザが閉じられるたびに、または私のタブ(複数のタブを含むブラウザが閉じている場合)が終了するたびにセッションをクリアしたいです。asp.netでブラウザが閉じたときにセッションをクリアすることは可能ですか?
答えて
短いバージョン番号: クライアントがブラウザを閉じたかどうかをサーバーが検出する方法はありません。それはWeb開発の非同期パターンの本質です。
ロングバージョン、本当にあなたにとって本当に重要なのであれば、 バックグラウンドであなたのウェブサイトへの定期的な投稿を送信し、これらの定期的な "ハートビート"信号を受信しない場合、セッションを廃棄するサーバサイドのエージェントまたはサービスを設定するJavaScriptのビットをページに入れます。
JavaScriptのポストバックをページのunload()イベントに置くことはできますが、それに依存することはありません。常に起動しません。
あなたはJavaScriptでそれをしようとすることができます...この問題から抜け出すために私を導いてください。私はcookies
がより良いセッション管理のためにここにあなたの要件を満たすことができると思い
http://www.codeproject.com/Tips/154801/How-to-end-user-session-when-browser-closed
:でそれを確認してください。
それはあなたがおよそ は、サーバー上のデータを消去する心配する必要はありませんように、あなたの呼び出しであるべきセッションデータをサーバと 上に保存してはならないことを意味します。
ブラウザのクローズイベントとは何が関係していますか?ユーザーがブラウザを閉じると、何も起きません。クッキーはクライアント側で何もしません。 –
@RenéWolferinkL:セッションデータをサーバーに保存しないでください。サーバー上のデータを消去する心配がありません。 –
これは、ブラウザを閉じるたびにデフォルトで行われます。これは、ASP.NETだけではありません。これは、セッション状態を持つほとんどのサーバー側プログラミング言語のためのものです。基本的に、有効期限を指定しないクッキーは、ブラウザが閉じたときに削除されます。
これは適用されません。これは、タブを閉じるときに発生します。これは、タブクローズイベントがWebサーバーに返送されないため、制御できないものです。
あなたは)別の方法として、あなたはすべての新しいブラウザ開度にあなたの前のセッションの状態を確認することができますし、Session.clearできる()またはSession.abandon(前のセッションをGlobal.aspx
//For Specific Session
Session.Remove("SessionName");
//All the Session
Session.Abandon();
ののSession_Endイベントを使用することができます。
これは、アプリケーションを起動するたびに新しいセッションを取得することを確認します。
- .netアプリケーションでBasePageを使用します。
- 基本ページの負荷でsession.sessionidを確認してください。
- その他の情報ベースページの新しいセッションを検出する方法。 BasePage.Session.Link
希望ブラウザを閉じたときに、これは、すべてのブラウザに自動的に明確なセッションの に関して Shaz
public class BasePage : Page
{
protected string mySessionId;
private CurrentUser _currentUser;
public CurrentUser _CurrentUser
{
get { return ((CurrentUser)HttpContext.Current.Session["myCurrentUser"]); }
set { _currentUser = value; }
}
protected override void OnLoad(EventArgs e)
{
if (Session["myCurrentUser"] != null)
{
if (_CurrentUser.ProUser)
{
mySessionId = Session.SessionID; // it means New Session
}
if (!mySessionId.IsNullOrDefault() && mySessionId != Session.SessionID)
{
Session.Abandon(); //Abandon current session and start new one
}
}
}
}
Yes.Firstに役立ちます。アンロード前とアンロード時のようなjavascript関数を使用して、ブラウザーでブラウザークローズまたはタブクローズイベントをキャプチャーしようとすることができます。ほとんどのonbeforeアンロードイベントはクロム、Firefox、IE 11のブラウザクローズイベントをキャプチャします。
- 1. ブラウザまたはタブを閉じるとAsp.Netセッションが終了する
- 2. mac osでブラウザを閉じるときにセッションを破壊するには?
- 3. Asp.netでブラウザを閉じる
- 4. ブラウザからのセッション、外部アプリケーションで読むことが可能
- 5. ブラウザが閉じられるとOmniauthセッションが終了する
- 6. ブラウザを閉じるときにテーブルからセッション値を削除する方法
- 7. 閉じるブラウザでセッションを削除するには?
- 8. プロセスが終了したら、私は自発的に拡散セッションを閉じることができますか?
- 9. Railsでは、ブラウザを閉じたときにどのようにセッションを破棄しますか?
- 10. aspxページが閉じられた後にセッションをクリアするには?
- 11. Javascriptを使用してAndroidブラウザを閉じることはできますか?
- 12. ブラウザを閉じた後のASP.NETセッション状態
- 13. JPA 2で 'はセッションまたはセッションが閉じなかった' とEJB 3.1
- 14. ブラウザの親ウィンドウを閉じても、子のポップアップウィンドウを閉じることはできますか?
- 15. iphoneシミュレータでブラウザをダウンロードすることは可能ですか
- 16. ユーザーがウィンドウまたはブラウザを閉じるときのJqueryタスク
- 17. asp.netとasp.netの間でセッション状態を共有することは可能ですか
- 18. ブラウザが閉じられた後もPHPセッションを維持する
- 19. IFrameをブラウザからフローティングすることは可能ですか?
- 20. SonarLintのプロンプト "閉じてこの 'FileReader'を閉じたときfinallyブロックで実際に閉じたとき
- 21. ASP.net:セッションIDからセッションを手動で初期化することは可能ですか
- 22. iOSとAndroidでは、ユーザーがセッションを閉じることを許可していませんか?
- 23. ブラウザが閉じるとモーダルウィンドウが開きますか?
- 24. ASP.NETブラウザを閉じるときにsession_endイベントが呼び出されないのはなぜですか?
- 25. 目に見えない活動を閉じるためにAndroidを避けることは可能ですか?
- 26. ブラウザが閉じるときにページメソッドを呼び出す
- 27. PHP Javascript?ユーザーがページまたはブラウザを閉じたときに何かを
- 28. フォームが閉じるべきでないときに閉じる
- 29. ユーザーがブラウザを閉じたときを知る方法?チャットアプリケーション
- 30. ブラウザを閉じるときにダイアログを確認しますか?
ハートビートのコントローラアクションまたはハンドラを設定する代わりに、ハートビート間隔の1分後にセッションタイムアウトを設定するだけです。その後、クッキーが期限切れになるので、ブラウザは自動的にセッションを破棄します。 –
JavaScriptからのアプローチでは、タイムアウト機能が主要なセキュリティ機能の1つを実行しないようにしてください。ユーザーがPCから離れた場合にユーザーに署名してください。私はあなたがこれを行い、あなたのサイトで専門的なセキュリティ監査を受けることを保証します、タイムアウトの欠如は問題としてフラグが立てられます。 – elexis