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

抛弃asp.net的Session改用自己的Session..嘎嘎


最近做.net项目,这个项目有点特殊,需要在每次http请求结束后,自动在文档的最后面加个字符串....

但是这个字符串需要用到Session....

 

结果我就在httpMoudle中加了一个过滤器.

 

当请求结束时把返回的数据 进行处理

 

用普通的过滤器不能满足要求..因为在contextApplication.EndRequest 事件触发的时候 Session已经销毁了..

所以不能访问Session...

 

思来想去,方法有两种..

第一种:新建一个集成自System.Web.UI.Page类的子类.然后所有的子页面都继承我写的这个类..这样Session也能用.也能达到效果...

缺点:.工作量太大..好多的页面要改呢.

 

第二种:自己创建Session,自己管理Session,完全抛弃 asp.net本身提供的Session...  

缺点,难度有点大...

优点: 以后可以自己随便使用Session ..不会出现Session相关的异常...

风险:可能自己想的不够周期,会出现一些漏洞..

 

不过俺是个喜欢挑战的人...喜欢自己控制事物.所以俺挑了第二种方案... 俺心里明白这么做是典型的程序员思维...但俺还是选择了第二种方案..

谁也说不准下次会不会用上这种方案..

不过我还是很认可我的方案的..

效率比微软的效率要高多了...

不信你试试看啊..

而且是开源的...下次出问题可以自己搞定...

越来越不喜欢微软的构架师..总以为我们程序员是白痴...人为的加好多限制..搞的我们因为一个异常搞好几天,还不给源代码. 文档又写那么一大堆.

越来越发现开源的好啊..

废话不多说贴代码..

MySessionContext.cs 文件