当前位置:编程学习 > C#/ASP.NET >>

急~~有关Session.Abandon的问题,请各we帮忙

我在网站里面做了一个用户权限的限制,主要是使用的Application和Session来完成的。就是在用户登录的时候建立一个Appilcation[username],当用户退出的时候和关闭浏览器的时候调用Session.Abandon()函数来启动Session_End()事件清楚Application,以便该用户下次进行访问。问题是,如何调用Session.Abandon()函数?
我试了一下的方法,但都存在一定的问题:
(1)
AAA.aspx页面的脚本:
<script language="javascript">

           function window.onunload() 
            { 
                if (event.clientX < 0 && event.clientY < 0) 
               {

                    window.location.href = "Logout.aspx"; // 或者调用Response.Redirect("Logout.aspx")
                }
            } 
</script>
在Logout.aspx中的Load_Page()中只写一句话:Session.Abandon()
可是在关闭程序的时候根本进不到Logout.aspx页面。

(2)
AAA.aspx页面的脚本
<script language="javascript">

           function window.onunload() 
            { 
                if (event.clientX < 0 && event.clientY < 0) 
               {
                     Response.Write("<% Session.Abandon(); %>");
                }
            } 
</script>
这种方法倒是可以调用Abandon()函数,可是在主页面点击该页面后(即调用完该页面的Page_Load函数)后就直接调用了该Adandond()
请各位了解情况的朋友帮忙看看,小弟在此谢过了!!
--------------------编程问答-------------------- (1)方法
Logout.aspx
Page_Load()
{
 Session.Abandon();
} --------------------编程问答-------------------- 但在方法1中,浏览器已经关闭根本进不到Logout.aspx这个页面中啊 --------------------编程问答-------------------- 我现在有换了一个方法在window.onunload()中调用window.open("Logout.aspx"),这时可以在新的窗口中打开页面,并调用Session.Abandon()函数,新的问题是在用户关闭浏览器时又会跳出一个新的页面来,就算可以在代码中把这个页面关掉,但多了这么一个过程,感觉比较繁琐。有没有更好的方法?大家帮帮忙 --------------------编程问答-------------------- <script language="javascript">
window.beforunload=function(){
//调用服务端方法
}</script> --------------------编程问答-------------------- 在window.beforeunload事件里写可以实现你的需求吧,这一事件会在注意器关闭之前执行.再配AJAX调用session.abandon() --------------------编程问答-------------------- 用beforeunload
再用ajax调用logout.apsx --------------------编程问答-------------------- 请问Ajax怎么用?有没有代码?我没有学过ajax不知道怎么用,请知道的帮个忙,谢谢了。小弟现在还在公司加班,搞不完走不了啊~~ --------------------编程问答-------------------- 这么晚还加班,这个公司太过分了 --------------------编程问答-------------------- 这样统计用户也不会很准确的,用户断网、断电就根本无法统计到 --------------------编程问答-------------------- Ajax 

通过xmlhttprequest来实现

用一些现成的js框架会很简单的,比如:prototype.js --------------------编程问答-------------------- 只是这样统计用法简单一点,没有在数据库中做用户的处理,所以只能这样做了。 --------------------编程问答-------------------- asp.net也有UnLoad事件的,你可以调用一下 --------------------编程问答--------------------
<script  language=javascript>  
window.onbeforeunload()  
{  
   if(event.clientX>document.body.clientWidth&&event.clientY<0  ¦¦event.altKey)  
   {  
       var  xmlhttp  =  new  ActiveXObject("Microsoft.XMLHTTP");  
       xmlhttp.open("GET","logout.aspx",false);  
       xmlhttp.send();  
     }  
}  
</script>
--------------------编程问答-------------------- Void Page_Unload()
{
    Session.Abandon(); 
}
--------------------编程问答-------------------- honey52570能不能说的具体点?关于这些我了解的不多 --------------------编程问答-------------------- Page_Unload()方法不行的,我的网页里面只有Page_Load()和Page_Unload()(刚加的)两个方法,在调用了Page_Load()之后立刻就调用了Page_Unload()方法。这样的话没有进行操作就取消了Session了 --------------------编程问答-------------------- 还有Vicqqq所写的方法我也试过了,也是不行的。
先谢了各位了。
只能先回家了,不然就要睡办公室了,谢谢了。 --------------------编程问答-------------------- Page_unload是可以控制的,你可以判断后执行 --------------------编程问答-------------------- 还有这样的:
 <body   onunload=myFun()>    
  <script   language="JavaScript">   
  function   myFun()   
  {   
  window.open("a.aspx","_blank")   
  }   
  </script>   
  在a.aspx的pageload里写你要处理的函数   
  在page_load的最后写   
  Response.Write("<script>window.close();</script>")
在把这个页面关闭掉   
补充:.NET技术 ,  ASP.NET
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,