在ASP.Net中清除会话

时间:2010-06-09 07:57:22

标签: asp.net session

我想在页面卸载上清除会话。

这是一个条件:

  • 如果用户从同一站点会话的页面A转到页面B,则不得清除。
  • 如果用户关闭浏览器窗口或Tab(关闭站点),则必须清除会话。

我尝试使用AJAX PageMethod调用服务器端程序从客户端脚本中删除会话。但是程序没有被命中,我已经使用断点检查了它。

服务器端程序在master.cs文件中

感谢您的帮助。

以下是site.master中的代码

<body onunload="HandleClose();">
    <script type="text/javascript">
        function HandleClose()
        {            
            PageMethods.AbandonSessions();
        }

这是master.cs中的代码:

[System.Web.Services.WebMethod]
        public static void AbandonSessions()
        {

            HttpContext.Current.Session.Abandon();

        }

1 个答案:

答案 0 :(得分:0)

您需要为页面卸载注册javascript事件,并发送AJAX请求以清除会话。当用户关闭浏览器窗口或选项卡时,将触发此事件。这是一个example page

<html> 
<head> 
<script type="text/javascript"> 
function clearSession() {
    // TODO: Send an AJAX call to a server side script 
    // that will clear the session
}
</script> 

</head> 
<body onunload="clearSession();"> 

</body> 
</html>