IE 11 cookie 处理问题,cookie 在一个域重定向后持续存在,而不是另一个域
IE 11 cookie handling issue, cookies persisting after redirect for one domain, not for a different domain
我们有一个非常奇怪的问题,只出现在 IE 中(我们使用的是 11,没有测试过其他版本)。 Firefox 或 Chrome 均未出现此问题。在一个子域内的页面上重定向后,Cookie 会正确保留,但在不同子域内的页面上则不会。
为了重现错误,我创建了两个 .asp 页面。
Cookie_Test.asp
<%
Response.Cookies("DebugCount") = 20
Response.Cookies("IRCookie")("Enabled") = True
Response.Redirect("Cookie_Test_2.asp")
%>
Cookie_Test_2.asp
<%
Response.Write "DebugCount " & Request.Cookies("DebugCount") & "<br/>"
Response.Write "Enabled " & Request.Cookies("IRCookie")("Enabled") & "<br/>"
%>
在我们网络中的一个域 (dev.localserver) 上,输出是正确的,正如我们所期望的:
DebugCount 20
Enabled True
但是,在不同的子域 (dev_v5.localserver) 上,输出为空:
DebugCount
Enabled
这适用于完全相同的 IE 11 浏览器,已在多个不同的工作站上得到验证。子域要么在浏览器的可信站点列表(Internet 选项、安全、可信站点)中,要么不在所有测试的机器上 -- 可信站点状态似乎不会影响问题。
我检查过这是否与重定向有关,确实如此。如果我将 set 和 get 放在同一个文件中,它在两个子域下都可以正常工作。
IIS 中是否存在影响域处理 cookie 方式的设置?是否有可能在其中一个子域下考虑使用 cookie "third-party"(尽管“隐私”选项卡中接受了第三方 Cookie 以及会话 Cookie?)
根据非常有帮助的 post here,我们查看了子域本身。由于我们的 none 客户遇到了错误,但我们只是在内部发现它,我们可以完全控制子域,因此我们没有将它们称为 "dev" 和 "dev_v5",而是将它们重命名为"dev4" 和 "dev5",发现现在重定向在这两种情况下都正确地传递了 Set-Cookie 响应 header。
我知道这可能对任何人都没有帮助,但在我们的案例中,似乎与应如何处理 cookie 没有直接关系的事情确实产生了需要减轻的影响。
我们有一个非常奇怪的问题,只出现在 IE 中(我们使用的是 11,没有测试过其他版本)。 Firefox 或 Chrome 均未出现此问题。在一个子域内的页面上重定向后,Cookie 会正确保留,但在不同子域内的页面上则不会。
为了重现错误,我创建了两个 .asp 页面。
Cookie_Test.asp
<%
Response.Cookies("DebugCount") = 20
Response.Cookies("IRCookie")("Enabled") = True
Response.Redirect("Cookie_Test_2.asp")
%>
Cookie_Test_2.asp
<%
Response.Write "DebugCount " & Request.Cookies("DebugCount") & "<br/>"
Response.Write "Enabled " & Request.Cookies("IRCookie")("Enabled") & "<br/>"
%>
在我们网络中的一个域 (dev.localserver) 上,输出是正确的,正如我们所期望的:
DebugCount 20
Enabled True
但是,在不同的子域 (dev_v5.localserver) 上,输出为空:
DebugCount
Enabled
这适用于完全相同的 IE 11 浏览器,已在多个不同的工作站上得到验证。子域要么在浏览器的可信站点列表(Internet 选项、安全、可信站点)中,要么不在所有测试的机器上 -- 可信站点状态似乎不会影响问题。
我检查过这是否与重定向有关,确实如此。如果我将 set 和 get 放在同一个文件中,它在两个子域下都可以正常工作。
IIS 中是否存在影响域处理 cookie 方式的设置?是否有可能在其中一个子域下考虑使用 cookie "third-party"(尽管“隐私”选项卡中接受了第三方 Cookie 以及会话 Cookie?)
根据非常有帮助的 post here,我们查看了子域本身。由于我们的 none 客户遇到了错误,但我们只是在内部发现它,我们可以完全控制子域,因此我们没有将它们称为 "dev" 和 "dev_v5",而是将它们重命名为"dev4" 和 "dev5",发现现在重定向在这两种情况下都正确地传递了 Set-Cookie 响应 header。
我知道这可能对任何人都没有帮助,但在我们的案例中,似乎与应如何处理 cookie 没有直接关系的事情确实产生了需要减轻的影响。