【发布时间】: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