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

时间:2010-05-26 06:17:08

标签: c# asp.net

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

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

3 个答案:

答案 0 :(得分:7)

非常困难的任务:

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

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

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

代码示例:

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

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

答案 1 :(得分:3)

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

关闭

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

答案 2 :(得分:1)

您可以定义会话在Global.asax.cs中到期时会发生什么。

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

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