日期:2014-05-17 浏览次数:20819 次
最近做.net项目,这个项目有点特殊,需要在每次http请求结束后,自动在文档的最后面加个字符串....
但是这个字符串需要用到Session....
结果我就在httpMoudle中加了一个过滤器.
当请求结束时把返回的数据 进行处理
用普通的过滤器不能满足要求..因为在contextApplication.EndRequest 事件触发的时候 Session已经销毁了..
所以不能访问Session...
思来想去,方法有两种..
第一种:新建一个集成自System.Web.UI.Page类的子类.然后所有的子页面都继承我写的这个类..这样Session也能用.也能达到效果...
缺点:.工作量太大..好多的页面要改呢.
第二种:自己创建Session,自己管理Session,完全抛弃 asp.net本身提供的Session...
缺点,难度有点大...
优点: 以后可以自己随便使用Session ..不会出现Session相关的异常...
风险:可能自己想的不够周期,会出现一些漏洞..
不过俺是个喜欢挑战的人...喜欢自己控制事物.所以俺挑了第二种方案... 俺心里明白这么做是典型的程序员思维...但俺还是选择了第二种方案..
谁也说不准下次会不会用上这种方案..
不过我还是很认可我的方案的..
效率比微软的效率要高多了...
不信你试试看啊..
而且是开源的...下次出问题可以自己搞定...
越来越不喜欢微软的构架师..总以为我们程序员是白痴...人为的加好多限制..搞的我们因为一个异常搞好几天,还不给源代码. 文档又写那么一大堆.
越来越发现开源的好啊..
废话不多说贴代码..
MySessionContext.cs 文件