【问题标题】:C#/ASP.NET: can't remove cookies with Domain property specifiedC#/ASP.NET:无法删除指定域属性的 cookie
【发布时间】:2011-10-23 01:19:02
【问题描述】:

我的登录方法中有以下代码:

Response.Cookies["cookie"].Value = "...";
Response.Cookies["cookie"].Domain = "domain.com";

这样将cookie放入主域和所有子域

但是当我尝试删除 cookie 时:

Response.Cookies["cookie"].Expires = DateTime.Now.AddYears(-1);

没用!

当我删除指定域属性的 2 行代码时,它工作正常。

我该如何解决这个问题?

谢谢

【问题讨论】:

  • 有人吗?我一直在为此苦苦挣扎......

标签: c# cookies subdomain


【解决方案1】:

好的,我想通了。

当您删除设置了域属性的 cookie 时,您需要为新的假 cookie 设置相同的属性:

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

【讨论】:

  • 感谢 Alex 分享您的答案。它帮助我交配
  • 你先生拯救了我的一天!
  • 救了我的命!!!!!!!!!!!!!!!!!!!!!!!!
【解决方案2】:

我怀疑您正在设置 ExpiresResponse 位于子域上...
Crosscheck:您可以尝试从域本身设置它,看看是否有效?

根据http://msdn.microsoft.com/en-us/library/ms178195%28v=VS.100%29.aspx,您可以通过以下方式删除 cookie:

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

【讨论】:

  • 感谢您的回答。我从域本身设置 cookie。我尝试了同样的例子,它只在 Opera 中有效。
  • 感谢您提供正确的解决方案。
【解决方案3】:

需要用空字符串设置域和值。没有价值就不行。

        var cookie = new HttpCookie(cookieName, string.Empty)
        {
            Expires = DateTime.Now.AddYears(-1),
            Domain = {YourDomain}
        };

        Response.Cookies.Add(cookie);

【讨论】:

    【解决方案4】:

    搜索了很多,但无法正常工作。 我必须实际设置 value 属性才能使其工作!使用 mvc 3 .net 4。

            var current = HttpContext.Current.Request.Cookies[key];
            if (current == null) return;
            var myCookie = new HttpCookie(key)
                               {
                                   Expires = DateTime.Now.AddYears(-1),
                                   Value = current.Value,
                                   Domain = domain
                               };
            HttpContext.Current.Response.Cookies.Set(myCookie);
    

    【讨论】:

      猜你喜欢
      • 2012-04-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-04-11
      • 2018-11-10
      • 1970-01-01
      相关资源
      最近更新 更多