0

我对 asp.net Web 应用程序有一些疑问。使用 sql server 会话状态的 Web 应用程序。注销事件可以删除会话,但按标题栏关闭按钮要删除会话。按下标题栏关闭按钮时可以控制哪些事件。我读到了 session_end 事件可以在按下标题栏关闭按钮时捕获。但是不能使用 sql server 会话状态产生 session_end 事件。怎么能抓?

4

1 回答 1

0

关闭浏览器不会结束服务器上的会话,服务器无法区分打开或关闭的浏览器,它只是接收请求然后发送响应并坐在那里等待另一个请求。在没有请求的一定时间后,会话将超时并且 session_end 事件将运行。

如果您想结束会话,则必须在关闭浏览器时将某种 ajax 请求发回服务器,以便服务器知道结束会话。

编辑

你可以使用 jQuery 做这样的事情

$(window).unload(function() {
  $.post('someurl');
});

将 someurl 替换为 Web 服务、处理程序或 mvc 控制器操作或类似内容的 url,告诉服务器浏览器已关闭。

然后服务器端你就做

Session.Abandon();
于 2012-06-28T10:08:13.407 回答