gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-03 04:59:40 24 4
gpt4 key购买 nike

摘要

使用 IE 10 时,ASP.Net 不会发回 Set-Cookie header 。这意味着,例如,在使用表单例份验证时,您无法使用 IE10 登录 ASP.Net 站点。

详情

我们目前正在针对 IE 10 [预览版 2] 测试我们的一款旧版 Web 应用。

当尝试使用表单例份验证登录时,如果用户代理是 IE 10 的用户代理,我们不会在响应中获得 Set-Cookie header 。我们已使用空白进行了尝试.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。然而,如果我们简单地将用户代理更改为 Mozilla/5.0(兼容;MSIE 9.0;Windows NT 6.1;Trident/6.0),它就可以工作!

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

修补程序

devio之后发布了原始答案,并提供了解决方法,nullptr已确认现在有一个 hotfix for this .

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

我已将修补程序升级到主要问题,因为它更方便将来引用,但请对提到的用户进行投票。

最佳答案

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

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

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

cookieless="UseCookies"

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

关于asp.net - IE10 User-Agent导致ASP.Net不发回Set-Cookie(IE10不设置cookie),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6983732/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com