最近做了一套信访管理系统,由于上访登记时间较长,所以要求系统设置页面超时时间必须长,不然数据输入完了程序总是提示"用户登录超时,请您重新登录",这样的话,输入的数据就白费了。所以我决定将时间限制设定长一些,就设置5个小时吧,应该够了吧...
以下是代码片段:
’-- 设定在5个小时
session.timeout = 300 ’× |
系统运行环境:win2003+iis6.0+asp
做了多次测试,居然不好用,这是为什么呢,上网找了许多资料,但是都属于session的基础篇,所以狠下心来,也不找了,自己研究吧,但是无论多少次测试却都无效,没办法了,换个方法试试吧,用cookies配合下session,看看效果,这一试问题居然解决了,结果出来了,得出论证了,原来如此,下面我来说下解决方法:
|
以下是代码片段:
’-- 用户登录成功后将用户名及用户级别等一些信息存入session和cookies各一份
session("username")="用户名"
session("userlevel") = "用户级别"
’-- 做份备份
response.cookies("userinfor")("username")="用户名"
response.cookies("userinfor")("userlevel")="用户级别"
’-- 这样一旦session自动失效,你就可以用cookies值来判断
if trim(request.cookies("userinfor")("username"))<>"" then
session("username")=request.cookies("userinfor")("username")
session("userlevel")=request.cookies("userinfor")("userlevel")
end if
if trim(session("username"))="" then
response.write "<script language=’javascript’>alert(’重新登录’);location.href=’登录页’;</script>"
end if
’-- 同时也可以用cookies来限定超时时间,假设设定为1天
response.cookies("userinfor").expires=now()+1
|
这样就可以了,引用这种方法的时候需要注意,在退出登录的时候,将cookies值也清空,不然会有安全隐患。
之所以导致session设置timeout不起作用,session自动失效的原因个人认为就是因为session相对于cookies来说还不够稳定,所以实现timeout这种功能的时候,最好还是用cookies的expires来取代吧.
原载: No.1网络工作室 http://www.noonenet.cn/
版权声明:原创作品,允许转载,转载时请务必以超链接形式标明文章原始出处、作者信息和本声明。否则将追究法律责任。
Tags:
session 设置 timeout 不起作用 自动失效同类文章:
·
banner图片过渡效果·
Asp - 学习StrComp函数·
Asp中Session详解·
Asp获取用户真实IP地址·
浮动框架[iframe]背景透明