IE10 User-Agent导致ASP.Net不发回Set-Cookie(IE10未设置cookie)

时间:2011-08-08 14:33:37

标签: asp.net internet-explorer

摘要

ASP.Net在使用IE 10时不会发回Set-Cookie标题。例如,在使用表单身份验证时,您无法使用IE10登录到ASP.Net站点。

详细

我们目前正在针对IE 10 [预览2]测试我们的旧版网络应用程序之一。

当尝试使用Forms身份验证登录时,如果用户代理是IE 10,我们在响应中不会得到Set-Cookie标头。我们尝试使用空白的.Net 2和。 Net 4网站。

因为我们不能/不会相信它,我们甚至通过telnet手动运行了跟随HTTP请求 - 在使用所有常用工具之后 - 并得到相同的响应。

GET http://test.ourdomain.co.uk/ HTTP/1.1
Accept: */*
Host: test.ourdomain.co.uk
User-Agent: Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; Trident/6.0)
Content-Length: 0

上述HTTP请求在响应中不返回Set-Cookie。然而,如果我们只是将User-Agent更改为Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/6.0)它就可以了!

其他人可以复制这个吗?除了影响非标准URL模式的问题之外,我找不到IE10 cookie的任何已知问题。

修补程序

devio发布原始答案后,通过解决方法,nullptr确认现在有hotfix for this

http://support.microsoft.com/kb/2600088

我已将此修补程序提升为主要问题,因为它对于将来的参考更为方便,但请对所提及的用户进行投票。

6 个答案:

答案 0 :(得分:71)

问题在于一些IIS实例认为IE10是一个无cookie的浏览器(即不支持cookie)。在我们的问题情况下,服务器正在设置身份验证cookie并将其发送回浏览器,但随后忽略了后续请求中的cookie。

解决方案是修补浏览器功能,以便它知道IE10可以执行cookie(在此页面上的另一个答案中概述),或更改默认行为以强制它使用cookie,即使它认为浏览器不能做饼干。

我们刚刚将以下内容添加到web.config中的表单部分:

<强>无Cookie = “UseCookies”

<authentication mode="Forms">
  <forms name=".AUTH" cookieless="UseCookies" loginUrl="/" timeout="10000" path="/" />
</authentication>

答案 1 :(得分:66)

MS Connect上找到此条目,行为是公认的错误。

建议的解决方法(来自条目):

  

==解决方法==

     

同时使其发挥作用并避免类似问题   未来,我用一个文件〜\ App_Browsers \ BrowserFile.browser了   以下内容:

<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>

答案 2 :(得分:33)

答案 3 :(得分:3)

谢谢你的帮助。它没有用。

  1. 我从site复制了文件 到C:\WINDOWS\microsoft.net\Framework\v2.0.50727\CONFIG\Browsers

  2. 运行命令提示符C:\WINDOWS\microsoft.net\Framework\v2.0.50727>aspnet_regbrowsers.exe -i

  3. 重新启动IIS。

  4. 对网站进行了测试,但没有任何错误。

  5. 再次感谢您的反馈

答案 4 :(得分:2)

nullptr answer的更新。

我今天尝试下载Microsoft KB2600088。通过电子邮件收到链接后,我点击了它,然后它引导我显示它已不再可用的页面。

试试这个:http://support.microsoft.com/kb/2600217

该链接是KB2600088和KB2628838的替代品。

MIcrosoft .Net Framework 4.5现已上市。

答案 5 :(得分:0)

安装了每个人都提到的各种补丁,无论出于何种原因,问题都没有得到解决。

已安装.NET Framework 4.5 Full,问题就消失了。

您不必将任何项目更新为目标4.5。只需将其安装在服务器上即可。