回答
简短版本,编号 服务器检测客户端是否已关闭浏览器没有可靠的方法。这只是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