解决IE10中ASP.NET中Cookie或Session丢失问题

    最近做网站,在本机测试没问题,放到服务器,用同样的浏览器访问,页面不兼容了不说,而且cookie丢失,登陆不上了,查了下资料,发现是IE10的漏洞。

    这是ASP.NET2.0,3.54.0Bugs,因这些版本无法识别IE10User-Agent标头字符串,所以无法识别用户浏览器的版本,从而导至了ASP.NET的特定功能失效,认为游览器不支持Cookies功能,不处理与Cookie相关的程式码等,从而在浏览器中不保存服务器返回的Session标识,造成丢失等. 

     这个问题早经微软官方确认,IE10的一个Bug,也发布了两个HOTFIX专门用来修复这个问题,各位如遇到同样的问题,可参考以下说明:

·        KB2600088:Hotfix适用在 Microsoft.NET Framework 4.0中的 ASP.NET  [英文]

·        KB2608565:Hotfix 适用在 .NET Framework 3.5.1中的 ASP.NET  [英文]

·        KB2600100:Hotfix 适用在 .NET Framework 3.5 SP1  .NET Framework 2.0 SP2 中的 ASP.NET  [英文]

ASP.NET [英文] 

     简单的解决方法是,在网站根目录,新增一个浏览器定义文件(browserdefinition file) 

     步骤如下: 

     1.添加一个"App_Browsers"文件夹到网站根目录 

     2.在第一步的文件夹中添加一个"*.browser"后缀的文件,IE10.browser. 

     3.在第二步的文本添加文件内容如下: 

<browsers>  
      <browser refID="Default"> 
          <capabilities><!-- To avoidwrong detections of e.g. IE10 --> 
             <capabilityname="cookies" value="true" /> 
             <capabilityname="ecmascriptversion" value="3.0" /> 
       	  </capabilities>   
       </browser>  
 
</browsers>  

 

 设定完成,问题即可解决,本方法同时也适用于处理asp.net中控件事件回发操作无效问题。

 

参考资料  解决ASP.NET中Cookie或Session丢失问题

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值