2010-05-26 54 views
3

我正在开发一个aspnet应用程序,因为我使用的是会话。如果用户登录到应用程序并单击注销,在这里我正在关闭会话。如何在用户关闭浏览器而不注销时终止会话

假设用户没有点击注销并关闭浏览器。当用户关闭浏览器而不注销时如何终止会话

+0

Rippo,我提出的问题有什么错误是否有错误? – kumar 2010-05-26 06:39:57

+0

问问题没有错,我向你致敬,但如果人们麻烦回答,至少接受一些答案是有道理的。它也有助于其他S.O.用户找到常见问题的答案,毕竟这是一个社区驱动的网站! – Rippo 2010-05-26 06:45:49

+0

非常好,希望你得到一个好的答案,也许你可以重温一些你的旧问题,并接受答案! :) – Rippo 2010-05-26 07:10:30

回答

1

您可以定义当Session在Global.asax.cs中过期时应该发生什么。

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

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

+1

你不能保证这将***始终***工作作为应用程序回收不会触发此事件。另请注意,Session_End仅在InProc(进程内)模式下触发。 – Rippo 2010-05-26 06:25:46

7

非常艰巨的任务:

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

  • 采用隐藏式脚本/ iframe来ping主机/你将有连接/

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

代码示例:

window.onunload = function() 
{  
    if((window.event.clientX<0) && (window.event.clientY<0)) { 

     window.open("logoff.aspx");     
    }  
} 
+0

+1我之前使用'window.onunload',但仍然发现一些问题,尤其是机器人,移动设备等。最后我改变了我的业务逻辑。 – Rippo 2010-05-26 06:28:42

3

没有办法,你的应用程序可以知道用户关闭浏览器。会话将基于Session关闭。Timeout

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

+0

,我们可以做。但是如何限制用户关闭浏览器的时间? – kumar 2010-05-26 06:27:14

相关问题