[asp.net实现用户窗口关闭后session]asp.net实现用户窗口关闭后Session立即过期

更新时间:2018-10-04    来源:浏览器    手机版     字体:

【www.bbyears.com--浏览器】

我们知道WEB服务器的Session是与客户端浏览器线程关联的,如果用户关闭了浏览器,服务端创建的Session对象也将会失效,但是,IIS在处理Session时,默认配置下,并不回立即将用户Session失效,通常需要等待1分钟左右时间,在这1分钟期间,用户的Session信息依然存储在服务端内存,如果被非法劫持利用的话很容易造成安全问题,所以在某些特定的场合,需要用户在页面窗口/标签关闭后,立即废止Session

以下是一种简单的方法
1.窗口关闭后立即弹出一个新页面
2.新页面中将Session内容废止

存在的问题:
1.弹出新窗口的代码可能会被浏览器禁止,如果不需要弹出新窗口,可以使用Ajax向服务器发送一个请求即可。
2.如果存在服务端窗口关闭事件,这部分服务端代码可能不会被执行。


参考代码,IE下测试有效。
前台

 代码如下



用户窗口关闭后Session立即过期
<script language="javascript">
//pop window方式
window.onunload = function()
{
window.open("WindowClose.aspx","WindowClose"); //打开新网页,通知服务端Session失效
};
//ajax 方式
window.onunload = function()
{
 var xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
 xmlHttp.open("GET","WindowClose.aspx",false); //Ajax方式通知服务端Session失效
 xmlHttp.send();
 
 alert("感谢您使用本系统!"); //提示
};
</script>

testtesttest

后台ASPX页面

 代码如下

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="WindowClose.aspx.cs" Inherits="WindowClose" %>
<% Session.Abandon();%>//调用Session失效方法
<script>
alert("感谢您使用本系统!"); //提示
//window.close();  //关闭前台页面
</script>

本文来源:http://www.bbyears.com/bangongshuma/44820.html

热门标签

更多>>

本类排行