C# 覆盖cookie的问题

C# 覆盖cookie的问题,c#,asp.net,cookies,C#,Asp.net,Cookies,客户端在a.url.com上有一个站点。客户端创建一个cookie,主机为“.url.com”,路径为“/”。客户端通过b.url.com重定向到我们。客户端存在编码问题,需要我们删除cookie(说来话长) 下面的代码在我们的测试或生产环境中根本没有调整过期时间,但在本地运行良好 if (Request.Cookies["cookie"] != null) { HttpCookie myCookie = new HttpCookie("cookie"); myCookie.Expire

客户端在a.url.com上有一个站点。客户端创建一个cookie,主机为“.url.com”,路径为“/”。客户端通过b.url.com重定向到我们。客户端存在编码问题,需要我们删除cookie(说来话长)

下面的代码在我们的测试或生产环境中根本没有调整过期时间,但在本地运行良好

if (Request.Cookies["cookie"] != null)
{
  HttpCookie myCookie = new HttpCookie("cookie");
  myCookie.Expires = DateTime.Now.AddDays(-1d);
  Response.Cookies.Add(myCookie);
}

有什么想法吗?

这是第三方cookie吗?如果是这样,IE中的默认安全设置将阻止在“internet”区域写入cookie,但在您的本地区域是允许的。

这里有一个漏洞。我只是张贴在这里,以防你发现你不能做你想做的事情,因为一些安全问题阻止你在第二个网站上处理这个问题

您可以向第一个站点发送请求,通过重定向清除cookie,并让该站点再次将用户弹回。正如我所说,这是非常黑客的(或者我想市场营销会称之为站点间合作安全特性)


希望有一个更好的方法,但是至少如果没有其他的方法,你还有一个选择。

< P>如果你不能在C语言中工作,你可能想考虑是否可以在JavaScript中操作Cookie。< /P>
加里

我们已经弄明白了。我们需要添加一行代码来手动设置域。现在完全有道理了

if (Request.Cookies["cookie"] != null)
{
  HttpCookie myCookie = new HttpCookie("cookie");
  myCookie.Domain = ".url.com";
  myCookie.Expires = DateTime.Now.AddDays(-1d);
  Response.Cookies.Add(myCookie);
}

不。它们共享同一个域,但只是有不同的主机a记录,如dog.animal.com和cat.animal.com。cookie由下面几个目录的页面设置。Cookie由设置。重定向之后(不同的IP和不同的服务器),我们的代码发生在。我认为这并不重要,因为cookie路径设置为“/”,但谁知道呢。我们做了更多的研究。cookie实际上是从www1、www2或www3.url.com创建的,尽管这并不重要。我们已经测试过,当我们手动创建cookie并将主机值设置为与我们的域(如b.url.com)完全相同的值时,代码正在更新cookie。当主机值设置为更一般的“.url.com”时,它不起作用。想法?这正是我要建议的。