asp.net 中的会话变量
我有一个使用会话变量的 asp.net web 应用程序。当 session_end 被触发时,我清除会话值,但是当关闭前一个窗口后在新窗口中打开应用程序时,会话值将保留。
有没有一种方法可以消除会话值。
提前致谢 ... 帕尼
I have a asp.net webapplicatoin using session variables. I clear the session values when session_end is fired but the when the application is opened in a new window after closing the previous window, the session values retain.
is there a way that we can get rid of session values.
Thanks in advance ...
Phani
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
仅关闭窗口时会话不会结束。会话在过期时结束。 ASP.NET 无法知道用户是否关闭了窗口。请参阅MSDN 有关 SessionStateModule.End 事件的内容
请参阅此回答以获得更彻底的解释。
在我的脑海中,您可以做的是检测用户何时关闭窗口,例如使用 jQuery 中的 unload() 事件,并向 Web 服务发送请求,然后结束会话。
A session does not end when simply closing a window. The session ends when it expires. ASP.NET has no way of knowing if a user closes the window. See MSDN on SessionStateModule.End Event
See this answer for a more thorough explanation.
Of the top of my head, what you could do is detect when the user closes the window e.g. using the unload() event in jQuery, and send a request to a webservice that then ends the session.
新的窗口/选项卡不会创建新会话,新的浏览器实例会创建新会话。
此外,当会话结束时,会话变量也消失了。您只是无法控制 GC 何时从内存中删除它们,但它们不再可访问。
New windows/tabs don't create new sessions, new browser instances do.
Also, when the session ends, the session variables are gone. You just can't control when the GC deletes them from memory, however they are no longer accessible.