用户在没有注销的情况下关闭浏览器时如何终止会话

我正在开发一个aspnet应用程序,因为我正在使用Sessions。 如果用户登录到应用程序并在此处单击注销,我将关闭会话。

假设用户没有点击注销并关闭浏览器。 用户在没有注销的情况下关闭浏览器时如何终止会话

非常困难的任务:

  • 使用非常小的超时会话/你将有到期/

  • 使用隐藏的脚本/ iframe来ping服务器/你将有连接/

  • 在窗口中处理onunload事件/可以绕过/

代码示例:

window.onunload = function () { if((window.event.clientX<0) && (window.event.clientY<0)) { window.open("logoff.aspx"); } } 

您的应用程序无法知道用户已关闭浏览器。 会话将根据Session.Timeout关闭

如果用户在超时期限内没有刷新或请求页面,则会话结束。

您可以定义会话在Global.asax.cs中到期时应该发生的事情。

 protected void Session_End(Object sender, EventArgs e) { // Do stuff here... } 

编辑:Web服务器无法知道您已关闭Web浏览器。