博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

让Session失效后继续保留Session里的值

Posted on 2009-10-31 19:59  懒人ABC  阅读(1005)  评论(0编辑  收藏  举报

Session失效目的是为了清空不使用的数据。

但有些特殊场合,我们并不想让Session失效。

比如一个系统中一个画面的内容特多,需要很长时间才能录入完了,而且录入的数据要更新的话,会用到很多Session里的值。

如果录入一半,突然有其他事情需要紧急处理去了。那这些录入的数据可能没等他回来就已经因Session失效而无法登录了。

对于这种情况,可以在Session失效的时候,把Session的值序列化,并保存到磁盘上,这样就不占用内存了。

等SessionStart时,判断一下保存的文件是否与当前的SessionID吻合,如果吻合,则反序列化,并重新赋值给Session。

这时的Session值就与Session失效前一样了。

 

序列化和反序列化的类为SessionStateItemCollection

示例:

 

Code