asp.net(c#)如何实现关闭浏览器时消除session

2024-12-02 10:40:29
推荐回答(3个)
回答1:

好像不能,只能等待session超时之后。。
原因:
1:服务器端无法检测到用户对浏览器的操作,服务器端虽然有Session_End事件,但是这个事件并不是浏览器关闭的时候触发...还是要等到session超时才出发。
2:虽然JavaScript可以检测到浏览器的关闭,但是却不能检测出本网站的其他页面是否关闭,况且客户端远比我们想想的复杂,浏览器进程突然中止,网络中断,死机等等,JavaScript都不可能会触发,所以通过JavaScript检测浏览器的关闭,在实际应用中达不到效果
3:除非你在你网站的每个页面里加上一个动作,通过ajax每隔几秒钟向服务器发送一次请求,用来保持session,超过时间服务器没有收到请求的话session自动超时
4:好像真没什么办法

回答2:

默认0

打开的时候window.onload js记录窗口+1

在卸载的时候onunload js记录窗口-1, 当为0的时候,通过js去访问一次消除session的页面.

回答3:

Global.asa
增加Session_End事件,里面处理