[英]Why is HttpContext.Current null during the Session_End event?
[英]Why “Session_end” not working?
global.asax文件中的事件如下所示:
protected void Session_End(Object sender, EventArgs e)
{
var x = 5;
}
客户端关闭窗口时代码没有到达那里,为什么?
客户端关闭窗口时代码没有到达那里,为什么?
因为当客户端关闭浏览器时不应该调用此事件。 此事件(顾名思义)旨在在会话到期时调用。 默认会话到期超时为20分钟,因此在客户端关闭浏览器20分钟后将调用此事件。
哦,你应该注意一个非常重要的问题:如果你使用的是进程外会话状态模式(例如StateServer或SqlServer),那么永远不会调用此事件。
PS: Session_End
事件仅由InProc
会话管理器支持
当会话过期时会调用它。
我认为你的需要是在页面关闭或文档解密时使用javascript函数,即onbeforeunload 。并在该函数中向服务器发出ajax请求,指示客户端正在关闭窗口。但是你应该注意安全性,因为这个javascript在客户端注册的方法,恶意用户可以更改ajax请求(甚至阻止它)。 如果你不考虑任何安全问题,你很高兴。好运。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.