首页  ·  知识 ·  云计算
Session设置永不过期
phoenix_17th    综合  编辑:dezai   图片来源:网络
保持Session的方法:有人说设session.timeout=-1,或小于0的数。这种方法肯定是不行的,session计算时间以分钟为单位,必须是大于等于1
 保持Session的方法:有人说设session.timeout=-1,或小于0的数。这种方法肯定是不行的,session计算时间以分钟为单位,必须是大于等于1的整数。又有人说设session.timeout=99999。这种同样不行,session有最大时间限制。我经过测试发现最大值为24小时,也就是说你最大可以session.timeout=1440,1441都是不可以有,呵呵。本人测试环境:win2003+IIS6.0+ASP3.0。 



所以想通过设session.timeout的过期时间让session永不过期是不可能的。写到Cookies里是比较好的方法,网上也有很多这样的教程,这里就不再说了!还有就是用在要保持session的页里设隐藏iframe每隔一段时间(这个时间小于session.timeout的时间)把刷新一次frame里的空页面!实现方法如下: 



在要保持session页里加上: <iframe width=0 height=0 src="/blog/SessionKeeper.asp"> 

</iframe> 





同目录下建一下SessionKeeper.asp的文件。 <html> 

<head> 

<meta http-equiv="Refresh" content="900000;url=sessionKeeper.asp"> 

<!--每隔900秒刷新一下自己,为了和服务器通讯一下,保持session不会丢--> 

</head> 

</html> 





这种方法还是比较长见的,另外还有一种和上面类似的方法,不过他不是用meta自动刷新嵌套的iframe的方法。他是用javascript:window.setTimeout("functionname()",10000);第隔一段时间时间自动调用一个函数的方法,当然函数里还是要去连接一个空的文件。具体方法如下: 



在要保持session面里加上: <script id=Back language=javascript></script> 



<script language=javascript> 

function keepsession(){ 

document.all["Back"].src="/blog/SessionKeeper.asp?RandStr="+Math.random(); 

//这里的RandStr=Math.random只是为了让每次back.src的值不同,防止同一地址刷新无效的情况 

window.setTimeout("keepsession()",900000); //每隔900秒调用一下本身 



keepsession(); 

</script> 



这样同一目录下建一个空内容的sessionKeeper.asp就文件就可以了
本文作者:phoenix_17th 来源:网络
CIO之家 www.ciozj.com 微信公众号:imciow
   
免责声明:本站转载此文章旨在分享信息,不代表对其内容的完全认同。文章来源已尽可能注明,若涉及版权问题,请及时与我们联系,我们将积极配合处理。同时,我们无法对文章内容的真实性、准确性及完整性进行完全保证,对于因文章内容而产生的任何后果,本账号不承担法律责任。转载仅出于传播目的,读者应自行对内容进行核实与判断。请谨慎参考文章信息,一切责任由读者自行承担。
延伸阅读