- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
摘要
使用 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/
我是一名优秀的程序员,十分优秀!