我在一台 Windows 2008 IIS 服务器上设置了两个站点。在第一个站点上,用户点击网页,然后使用以下简单的 C# 代码创建 cookie。
<%
HttpCookie myCookie = new HttpCookie("MyTestCookie");
myCookie.Value = "Hi";
myCookie.Expires = DateTime.Now.AddMinutes(1);
Response.Cookies.Add(myCookie);
>%
我已经验证该站点实际上可以“看到” cookie,并且我可以使用以下代码来显示其值:
<% Response.Write(Request.Cookies["MyTestCookie"].Value); %>
在托管在完全相同的服务器上的另一个站点上。我使用以下代码查看是否为 cookie 分配了值:
if (Request.Cookies["MyTestCookie"] == null)
{
lblErr.Text = "Cookie is null.";
}
else
{
lblErr.Text = Request.Cookies["MyTestCookie"].Value;
}
它是空的。然而,就在几天前,它不是空的。在实际站点的完整代码中,它对除少数用户外的所有用户都有效。在尝试对这些特定用户进行故障排除时,它停止了对所有人的工作。
我不知道我做错了什么,但我需要在两个完全独立且彼此不知道的站点之间传递值。我认为如果在同一台服务器上,第一方 cookie 可以正常工作。我究竟做错了什么?