ASP.NET在IE10中无法判断用户已登入及Session丢失问题解决方法
更新时间:2013年02月15日 14:43:37 作者:
IE10中Session丢失问题引起众多业内人士的关注,今天发现在IE10中登录网站时,使用表单验证机制(FormsAuthentication)却无法判断该用户已登入,保存的Session总会丢失,本文将介绍解决方法,感兴趣的朋友可以参考下,或许对你有所帮助
今天发现在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 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>
设定完成,问题即可解决
相关文章
MVC+EasyUI+三层新闻网站建立 分页查询数据功能(七)
这篇文章主要为大家详细介绍了MVC+EasyUI+三层新闻网站建立的第七篇,教大家如何分页查询出数据,具有一定的参考价值,感兴趣的小伙伴们可以参考一下2017-07-07
Visual Studio 2017 community安装配置方法图文教程
这篇文章主要为大家详细介绍了Visual Studio 2017 community安装配置方法图文教程,具有一定的参考价值,感兴趣的小伙伴们可以参考一下2018-09-09
C#中的Equals、RefrenceEquals和==的区别与联系
C#中判断两个对象是否相等有Equals、RefrenceEquals和==三种,其中==为运算符,其它两个为方法,而Equals又有两种版本,一个是静态的,一个是虚拟的,详细了解可以参考本文2012-12-12
Repeater控件分别绑定数组和ArrayList实现思路
在后台用DataSource绑上数据源(数组或ArrayList)在调用DataBind()方法,在前台调用%# GetDataItem()%,感兴趣的朋友可以了解下啊,望本文可以巩固你的数据绑定知识2013-01-01
关于服务器或虚拟主机不支持 AjaxPro 的问题终极解决方法
asp.net的网站,访问时提示不支持 AjaxPro,那就因为误删的映射导致,可以通过下面的方法解决2012-03-03
MVC默认路由实现分页(PagerExtend.dll下载)
这篇文章主要介绍了MVC默认路由实现分页,采用bootstrap的样式,文末提供了PagerExtend.dll下载地址,感兴趣的小伙伴们可以参考一下2016-07-07


最新评论