【问题标题】:IE 11 cookie handling issue, cookies persisting after redirect for one domain, not for a different domainIE 11 cookie 处理问题,cookie 在重定向一个域后仍然存在,而不是另一个域
【发布时间】:2017-06-26 19:05:58
【问题描述】:

我们有一个非常奇怪的问题,只出现在 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 选项、安全性、受信任站点)中,要么不在所有测试的机器上——受信任站点状态似乎不会影响问题。

我检查了这是否与重定向有关,确实如此。如果我把集合放在同一个文件中,它在两个子域下都可以正常工作。

在 IIS 中是否有一个设置会影响域处理 cookie 的方式?是否有可能在其中一个子域下将 cookie 视为“第三方”(尽管“隐私”选项卡中接受了第三方 cookie 以及会话 cookie?)

【问题讨论】:

    标签: redirect cookies asp-classic


    【解决方案1】:

    根据非常有用的帖子here,我们查看了子域本身。由于我们的客户都没有遇到错误,但我们只是在内部发现它,我们对子域拥有完全的控制权,所以我们没有将它们称为“dev”和“dev_v5”,而是将它们重命名为“dev4”和“dev5”并且发现现在重定向在两种情况下都正确传递了 Set-Cookie 响应标头。

    我知道这可能对任何人都没有帮助,但在我们的案例中,似乎与应该如何处理 cookie 没有直接关系的事情确实产生了需要减轻的影响。

    【讨论】:

      猜你喜欢
      • 2012-11-08
      • 2022-09-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-01-16
      • 2014-04-25
      • 2013-10-14
      • 1970-01-01
      相关资源
      最近更新 更多