繁体   English   中英

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

[英]IE10 User-Agent causes ASP.Net to not send back Set-Cookie (IE10 not setting cookies)

摘要

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

详情

我们目前正在针对IE 10 [预览2]测试我们的一个遗留Web应用程序。

当尝试使用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确认现在有一个修补程序

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

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

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

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

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

Cookie的= “UseCookies”

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

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>

有一个针对此问题的修补程序[1]。

1) http://support.microsoft.com/kb/2600088
1) http://support.microsoft.com/kb/2600217 (替换以前的KB)

此外,[2]表明这将在2012年1月发布Windows Update。

2) http://www.hanselman.com/blog/BugAndFixASPNETFailsToDetectIE10CausingDoPostBackIsUndefinedJavaScriptErrorOrMaintainFF5ScrollbarPosition.aspx

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

  1. 我将文件从站点复制到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. 测试了网站,它没有任何错误。

再次感谢你的反馈

nullptr答案的更新。

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

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

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

MIcrosoft .Net Framework 4.5现已上市。

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM