ASP.NET在IE10中无法判断用户已登入及Session丢失问题解决方法

高洛峰
发布: 2017-01-07 09:54:36
原创
1412人浏览过

今天发现在ie10中登录我公司的一个网站时,点击其它菜单,页面总会自动重新退出到登录页,后检查发现,ie10送出的http头,和.auth cookie都没问题,但使用表单验证机制(formsauthentication)却无法判断该用户已登入,保存的session总会丢失.

后查实这是asp.net 2.0,3.5和4.0的bugs,因这些版本无法识别ie10的user-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  [英文]
简单的解决方法是,在网站根目录,新增一个浏览器定义文件(browser definition file) 

步骤如下: 
1.添加一个"app_browsers"文件夹 
2.添加一个"*.browser"后缀的文件,如ie10.browser. 
3.添加文件内容如下: 

<browsers> 
<browser refID="Default"> 
<capabilities><!-- To avoid wrong detections of e.g. IE10 --> 
<capability name="cookies" value="true" /> 
<capability name="ecmascriptversion" value="3.0" /> 
</capabilities> 
</browser> 
</browsers>
登录后复制

更多ASP.NET在IE10中无法判断用户已登入及Session丢失问题解决方法相关文章请关注PHP中文网!

最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号