急~~有关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>--------------------编程问答-------------------- Void Page_Unload()
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>
{
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