今天发如今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专门用来修复这个问题,各位如遇到一样的问题,可参考如下说明:cookie
简单的解决方法是,在网站根目录,新增一个浏览器定义文件(browser definition file)asp.net
步骤以下:ecmascript
1.添加一个"App_Browsers"文件夹网站
2.添加一个"*.browser"后缀的文件,如IE10.browser.spa
3.添加文件内容以下:.net
<browser refID="Default">orm
<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中控件事件回发操做无效问题。