日期:2014-05-17  浏览次数:20424 次

Global里的session_end怎样获取信息
先介绍一下项目情况,需要记录用户登录和注销。
常规注销没问题,需要处理的是用户直接关闭浏览器时,也要记录到数据库。
我采用的方案是通过脚本方法window.onbeforeunload,在用户关闭浏览器时打开一个新页面window.open("logout.aspx", "logout")
logout.aspx页只有一句<%Session.Abandon()%>
这样Global的session_end就能准确捕捉到X掉浏览器的操作
问题来了:
session_end在session释放后触发,session是不能用了
Global里不能Request或Response,cookie也不能用了
那么我要怎么从数据库获取用户登录的那条数据呢?

PS:数据库表结构
用户ID   用户动作    时间    该次登录标识
admin     登录     17:50     GUID
我的最终目的是在session_end里存入一条数据
admin     注销     17:51    和登录一致的GUID

------解决方案--------------------
直接在跳到logout页面时就添加数据库信息,此时是有session信息的。
但这种做法意义不大,因为B/S架构的退出方式很多。这种做法获取不全。