关于Web中Session失效

不要过于相信Session的Timeout属性,如果你把它设置为24小时,则很难相信24小时之后用户的Session还在。Session是否存在,不仅仅依赖于Timeout属性,以下的情况都可能引起Session丢失(所谓丢失就是在超时以前原来的Session无效)。

下面介绍一种情况

 bin目录中的文件被改写。Asp.net有一种机制,为了保证dll重新编译之后,系统正常运行,它会重新启动一次网站进程。那么怎么保证使用的是最新的dll呢?运行着的网站会一直监视bin目录,一旦bin目录中有任何文件变化,dll或者config变化,都会导致网站重启,即使人为的存放txt或者其他文件进行了编辑,网站也会重启。这时就会导致Session丢失。所以如果有access数据库位于bin目录,用户向access中写入了数据,网站就会重启,就会导致Session丢失。


 如何立刻让Session失效。比如用户退出系统后,Session中保存的所有数据全部失效,可以使用以下代码来让Session失效: Session.Abandon();

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。