回答
簡短版本,編號 服務器檢測客戶端是否已關閉瀏覽器沒有可靠的方法。這只是Web開發的異步模式的本質。
長版,如果對你來說真的很重要, 在後臺發送一個普通帖子到你的網站的頁面中放入一些javascript,並設置一個服務器端代理或服務,如果它不接收這些常規的「心跳」信號,它將處理這些會話。
您可以將JavaScript回傳到頁面的unload()事件中,但不要依賴它,它並不總是觸發。
你可以嘗試這樣做,用JavaScript。檢查它在:
http://www.codeproject.com/Tips/154801/How-to-end-user-session-when-browser-closed
我覺得cookies
可以更好地在這裏滿足您的要求進行會話管理。
這意味着會話數據不應該被存儲在服務器上,並 應該與你通話,讓你不必擔心 清除服務器上的數據。
Cookie與瀏覽器的關閉事件有什麼關係?如果用戶關閉他們的瀏覽器,則什麼都不會被解僱。 cookie將在那裏,在客戶端,什麼都不做。 –
@RenéWolferinkL:這意味着會話數據不應該存儲在服務器上,應該與您的電話一起使用,以便您不必擔心清除服務器上的數據。 –
默認情況下,每當關閉瀏覽器時都會發生這種情況,這不僅僅適用於ASP.NET。它適用於大多數具有會話狀態的服務器端編程語言。基本上,添加的任何未指定過期日期的cookie都將在瀏覽器關閉時被刪除。
如果這不適用,那麼當您關閉一個選項卡時,由於選項卡關閉事件不會被髮送回Web服務器,因此您無法控制該選項卡。
或者你可以檢查你先前的會話狀態在每一個新的瀏覽器開能Session.clear()或Session.abandon()以前的會話。
這將確保您每次啓動應用程序時都會獲得新的會話。
- 在.net應用程序中使用BasePage。
- 檢查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函數捕獲瀏覽器關閉或Tab關閉事件,如在卸載和卸載之前。大部分onbefore卸載事件捕獲Chrome,Firefox,IE 11中的瀏覽器關閉事件。
- 1. 關閉瀏覽器清除PHP會話
- 2. 在瀏覽器關閉清除會話 - 本機會話
- 3. 爲什麼在瀏覽器關閉後會話不能清除?
- 4. PHP會話Cookie未在瀏覽器上清除關閉
- 5. 如何在關閉瀏覽器選項卡時清除會話?
- 6. 如何清除瀏覽器關閉的設計會話?
- 7. PHP會議上就關閉瀏覽器
- 8. 可以在谷歌瀏覽器中查看ASP.NET MVC3會話嗎?
- 9. 在瀏覽器關閉asp.net的放棄會話。關閉會話cookie
- 10. 關閉瀏覽器或標籤時關閉Asp.Net會話
- 11. 在關閉ZF2中的瀏覽器時清除LDAP連接會話
- 12. 清除瀏覽器上的cookies關閉
- 13. 會話cookie不會在瀏覽器上關閉關閉
- 14. 如何在瀏覽器中關閉瀏覽器以銷燬會話和cookie 4
- 15. 只要瀏覽器打開就保持會話
- 16. Laravel關閉瀏覽器關閉會話不在Chrome中工作
- 17. 如何在瀏覽器中關閉一個會話關閉Django
- 18. 在瀏覽器中關閉會話值關閉
- 19. 即使瀏覽器關閉後,是否可以保持會話?
- 20. 清除會話瀏覽器退出php
- 21. ASP.net會話如果他關閉瀏覽器會破壞
- 22. 關閉瀏覽器會話丟失
- 23. 關閉瀏覽器後保持會話
- 24. asp.net 4.0會話沒有終止在瀏覽器關閉
- 25. 關閉瀏覽器實際上應該清除會話變量一個ASP.net會話ID
- 26. 關閉瀏覽器並不清楚會話自動
- 27. 在nodejs上關閉瀏覽器時刪除會話
- 28. CakePHP在瀏覽器上刪除特定會話關閉
- 29. 會話將在關閉瀏覽器後被刪除nodejs
- 30. javascript-ajax-關閉JAVA中關閉瀏覽器的會話
爲心跳設置控制器操作或處理程序的替代方法是將會話超時設置爲在心跳間隔後一分鐘。然後瀏覽器會自動處理它自己的會話,因爲cookie會過期。 –
請不要執行javascript方法,因爲這會阻止超時功能執行其中一項關鍵安全功能 - 如果用戶離開PC,則將其簽出。我保證,如果你這樣做,並在您的網站上進行專業的安全審計,缺少超時將被標記爲一個問題。 – elexis