ASP.NET在IE10中无法判断用户已登入及Session丢失问题解决方法
2023-06-13 09:14:45 时间
今天发现在IE10中登录我公司的一个网站时,点击其它菜单,页面总会自动重新退出到登录页,后检查发现,IE10送出的HTTP头,和.AUTHCookie都没问题,但使用表单验证机制(FormsAuthentication)却无法判断该用户已登入,保存的Session总会丢失.
后查实这是ASP.NET2.0,3.5和4.0的Bugs,因这些版本无法识别IE10的User-Agent标头字符串,所以无法识别用户浏览器的版本,从而导至了ASP.NET的特定功能失效,认为游览器不支持Cookies功能,不处理与Cookie相关的程式码等,从而在浏览器中不保存服务器返回的Session标识,造成丢失等.
这个问题早经微软官方确认,是IE10的一个Bug,也发布了两个HOTFIX专门用来修复这个问题,各位如遇到同样的问题,可参考以下说明:
KB2600088:Hotfix适用在Microsoft.NETFramework4.0中的ASP.NET [英文]
KB2608565:Hotfix 适用在.NETFramework3.5.1中的ASP.NET [英文]
KB2600100:Hotfix 适用在.NETFramework3.5SP1 与.NETFramework2.0SP2中的ASP.NET [英文]
简单的解决方法是,在网站根目录,新增一个浏览器定义文件(browserdefinitionfile)
步骤如下:
1.添加一个"App_Browsers"文件夹
2.添加一个"*.browser"后缀的文件,如IE10.browser.
3.添加文件内容如下:
复制代码代码如下:
后查实这是ASP.NET2.0,3.5和4.0的Bugs,因这些版本无法识别IE10的User-Agent标头字符串,所以无法识别用户浏览器的版本,从而导至了ASP.NET的特定功能失效,认为游览器不支持Cookies功能,不处理与Cookie相关的程式码等,从而在浏览器中不保存服务器返回的Session标识,造成丢失等.
这个问题早经微软官方确认,是IE10的一个Bug,也发布了两个HOTFIX专门用来修复这个问题,各位如遇到同样的问题,可参考以下说明:
KB2600088:Hotfix适用在Microsoft.NETFramework4.0中的ASP.NET [英文]
KB2608565:Hotfix 适用在.NETFramework3.5.1中的ASP.NET [英文]
KB2600100:Hotfix 适用在.NETFramework3.5SP1 与.NETFramework2.0SP2中的ASP.NET [英文]
简单的解决方法是,在网站根目录,新增一个浏览器定义文件(browserdefinitionfile)
步骤如下:
1.添加一个"App_Browsers"文件夹
2.添加一个"*.browser"后缀的文件,如IE10.browser.
3.添加文件内容如下:
<browsers>
<browserrefID="Default">
<capabilities><!--Toavoidwrongdetectionsofe.g.IE10-->
<capabilityname="cookies"value="true"/>
<capabilityname="ecmascriptversion"value="3.0"/>
</capabilities>
</browser>
</browsers>
设定完成,问题即可解决
相关文章
- [.NET控件]Telerik RadControls for ASP.NET AJAX 2008 Q1 net 2.0 Web.UI「建议收藏」
- Asp.net在IIS上运行不了的解决方法
- asp.net需要登陆的网站上下载网页源代码和文件
- asp.net防止SQL注入攻击
- ASP.NET路径问题的解决方法
- asp.net实现动态显示当前时间(不用javascript不考虑开销)
- 手动把asp.net的类生成dll文件的方法
- asp.net(C#)解析Json的类代码
- ASP.NET中使用后端代码注册脚本生成JQUERY-EASYUI的界面错位的解决方法
- IE性能分析工具(asp.net环境)
- asp.net使用母版页中使用ajax脚本取数据
- Asp.net中断点续传的原理与实现方法分享
- 在ASP.NET中,设置Session的过期时间的方法
- Asp.net中static变量和viewstate的使用方法(谨慎)
- asp.net生成Excel并导出下载五种实现方法
- ASP.NET解决上传大文件问题的方法
- asp.net获取URL和IP地址的方法汇总
- asp.net连接查询SQL数据库并把结果显示在网页上(2种方法)
- c#asp.net动态创建sql数据库表的方法
- ASP.NET服务器端控件RadioButtonList,DropDownList,CheckBoxList的取值、赋值用法
- 解读ASP.NET密码强度验证代码实例分享
- asp.net中eval不能定义变量的问题的解决方法
- ASP.NET汉字转拼音-输入汉字获取其拼音的具体实现
- ASP.net判断上传文件类型的三种有效方法
- ASP.NET静态页生成方法
- asp.net调用系统设置字体文本框的方法