Web程序注销的实现分析
在Web应用中,操作用户的信息和操作过程中的数据经常会存放在Session中,Session信息可提高程序的运行效率和灵活性。当用户退出系统后,如果不对该用户的Session信息及时清除,在一定的时间内仍有可能会驻留在服务器上,不仅会造成Web服务器资源浪费,而且更为严重的会使用户信息泄露。本文使用ASP.NET开发Web应用程序,对程序的注销技术进行一些探讨。
标签: Session JavaScript onunload事件
一、引言
Session中文翻译为会话,在web开发语境下的含义是指一类用来在客户端与服务器之间保持状态的解决方案或存储结构。一般情况下服务器会为seesion设置了一个失效时间,当距离客户端上一次使用session的时间超过这个失效时间时,服务器就可以认为客户端已经停止了活动,才会把session删除以节省存储空间,但浏览器不会主动在关闭之前通知服务器它将要关闭,因此服务器根本不会有机会知道浏览器已经关闭,除非程序通知服务器删除一个session,
否则服务器会在一定时间内保留,这样不仅会造成Web服务器资源浪费,也会造成用户信息泄露,存在安全隐患。程序一般提供注销功能删除session,但用户可能直接关闭浏览器或跳转到其他站点,如何在不确定的情况下,对session信息及时清空对于提高Web服务器运行效率和程序的安全性都有很大的帮助。本文在Asp环境下对任意操作下的注销技术进行探讨。
二、功能的实现
Login.aspx页面验证用户身份成功后,会进入程序的主页面main.htm。Main.htm是一个框架,包含三个框架。上面框架是提示信息页main_top.aspx,包含登陆的用户姓名,单位题头,当前服务器的日期和关闭程序的HTM的按钮。main_top.aspx的HTML代码中部分有一个JAVASCRIPT的代码:
function __toTop() { window.parent.window.close ();main_top.aspx的父窗口是main.htm,代码window.parent.window.close ()引发main.htm的unload事件,unload事件又会引发beforeunload事件,因此在main.htm的头文件中添加javascript代码:unload = function() { var http = new ActiveXObject(”MSXML2.XMLHTTP”); htt
p.open(“get”, ”Logout.aspx“);http.send();}} beforeunload = function() { urnValue =“關闭窗口同时将注销系统。”;}XmlHttp是一套可以在脚本语言中通过http协议传送或从接收XML及其他数据的一套API。XmlHttp最大的用处是可以更新网页的部分内容而不需要刷新整个页面。XmlHttp提供客户端同http服务器通讯的协议。客户端可以通过XmlHttp对象(MSXML2.XMLHTTP.3.0)向http服务器发送请求并使用微软XML文档对象模型处理回应。多数浏览器都增加了对XmlHttp的支持,IE中使用ActiveXObject方式创建XmlHttp对象,其他浏览器如:Firefox、Opera等通过window.XMLHttpRequest来创建xmlhttp对象。 main.htm在关闭之前执行Logout.aspx页面,该页面专门负责注销功能,页面上只有一个LinkButton控件,在Page_Load事件中,添加如下代码:LinkButton1_Click(sender,e);在LinkButton控件的Click事件中添加清除Session信息的代码,如:Session.Remove (“userid”);Session.Remove (“username”);Session.Remove (“lsdata”);Session.Remove (“rolesetup”)。
经过以上的处理,当用户关闭窗口或转向其他地址时,会弹出窗口“确定”会退出程序并清除Session信息。
三、总结
在大型的Web应用中,数据的并发访问量很大,Web服务器负荷较重,及时释放不必要的资源,对应用程序和Web服务器的稳定性、可靠性和运行效率都有正面的益处。Session作为客户端与服务器的通信会话占用Web服务器消耗较多,因此释放Session中的临时交换数据,可有效地提高服务器端的资源利用率,同时及时清除Session中的用户信息,可避免黑客攻击,保护用户数据的安全,维护了用户利益。
参考文献:
[1]微软公司.ASP.NET安全应用程序开发[M].北京:清华大学出版社,2003
javascript是什么意思中文翻译[1]李建忠:Microsoft.NET框架程序设计[M].北京:清华大学出版社,2003
[2]桂思强:ASP与数据库程序设计[M].北京:中国铁道出版社,2002
[4]微软 .ASP.NET安全应用程序开发[M].北京:清华大学出版社.2003