[导入]Url重写后Session失效的问题

示例如下:Login页面,负责登录验证,登录成果后,转到Default页面,在Default上有个链接,地址为123.shtml,这是一个假的地址,真正的地址是Detail.aspx?id=123,这样就需要一个HttpHandler来处理这种类型的地址,目录结构如下:

49458c27456a057dfd47c

源代码如下:

Default.aspx

49458c27456a065477708

Default.aspx.cs

49458c27456a09acefd2a

Login.aspx

49458c27456a06b1d1563

Login.aspx.cs

49458c27456a06f46e853

Detail.aspx

49458c27456a07120c652

Detail.aspx.cs

49458c2706f100b742656

UserInfo.cs

49458c2706f100bafbed6

MyHandler.cs

49458c27456a077320174

这样就会报错,错误为:

 

“/WebSite1”应用程序中的服务器错误。


只有在配置文件或 Page 指令中将 enableSessionState 设置为 true 时,才能使用会话状态。还请确保在应用程序配置的 <configuration>\<system.web>\<httpModules> 节中包括 System.Web.SessionStateMod 或自定义会话状态模块。

按照提示将Page指令中的enableSessionState设置为true,不行。

中断调试,刚到Detail的这一句就挂了:UserInfo ui =Session["User"] as UserInfo;原因是Session根本就没有?!怎么可能?!

最后搜到一篇的末尾说,“当希望在HttpHandler中访问Session时,你必须实现IReadOnlySessionState接口”,没法子,死马当作活马医吧,奇怪,这个接口中居然没有方法。不错。

Ok了,土鳖不扛铁牛了。

49458c27456a0918a5cfd


文章来源: http://blog.sina.com.cn/s/blog_49458c270100b9xm.html

转载于:https://www.cnblogs.com/dalishuishou/archive/2008/09/11/1389596.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值