asp.net如何在用户关闭浏览器时执行Session_End方法

 
查看文章
  
asp.net如何在用户关闭浏览器时执行Session_End方法
2009-12-02 16:35

1.建两个页面king.aspx,leave.aspx,和一个Global.asax全局文件
king.aspx页面,在web.config文件中加上:<sessionState mode="InProc" timeout="60"/>,很重要!Session_End只会在mode="InProc"时触发,timeout为session的有效时间!
     前台源码:
     <iframe name="win" style="width:1px; width:1px;"></iframe>
     <script>
     function window.onbeforeunload(){
         if(document.body.clientWidth-event.clientX<15 && event.clientY<0 || event.altKey){//屏蔽刷新
             window.open("leave.aspx","win");
             alert('你正在离开...');
         }
     }
     </script>
      后台源码:
     protected void Page_Load(object sender, EventArgs e)
     {
        if (!IsPostBack)
        {
            Session["wang"] = "王东鑫";
        }
     }

      leave.aspx页面,
      后台源码:
      protected void Page_Load(object sender, EventArgs e)
     {
        if(!IsPostBack)
            Session.Abandon();//强制取消当前会话,关键所在!
     }
     

      Global.asax源码:
      void Session_End(object sender, EventArgs e)
     {
         string str = Session["wang"].ToString();//打断点,试试能不能执行,能不能取道‘王东鑫’?执行结果是可以的!!
     }

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值