ASP.NET在IE10中Form表单身份验证失效问题解决方法

我的系统遇到了这个问题,还好有好心网友发布了一篇文章:
 
---------网上找的原文如下---------------------------
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.添加文件内容如下: 
 
 
 
 
 
 
 
 

设定完成,问题即可解决
 
---------------------------------------------------------------------
 
我用加入的浏览器自定义文件解决了问题,不过对App_Browers不是很了解
 
 

你可能感兴趣的:(ASP.NET在IE10中Form表单身份验证失效问题解决方法)