我正在开发一个aspnet应用程序,因为我正在使用Sessions。如果用户登录到应用程序并单击此处注销我正在关闭会话。
假设用户没有点击退出并关闭浏览器。用户在没有注销的情况下关闭浏览器时如何终止会话
答案 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...
}
编辑:网络服务器无法知道您已关闭网络浏览器。