【问题标题】:Not able to remove/delete cookie无法删除/删除 cookie
【发布时间】:2018-03-07 15:16:21
【问题描述】:

我已经使用下面的代码设置了 cookie。

 HttpCookie cookie = new HttpCookie("test");
 cookie.Expires = DateTime.Now.AddDays(1);
 cookie.Values.Add("UserID", UserID);
 cookie.Values.Add("UserName", UserName);
 cookie.Values.Add("IsUserAdmin", IsUserAdmin.ToString());
 HttpContext.Response.Cookies.Add(cookie);

我正在使用下面的代码来删除/删除 cookie。

 HttpCookie cookie = new HttpCookie("test");
 cookie.Expires = DateTime.Now.AddDays(-1d);
 Response.Cookies.Add(cookie);

但是我无法删除/删除 cookie。
有没有更好的删除cookie的方法?
请给我一些建议。

【问题讨论】:

  • 请向我们展示 Chrome 开发者工具中的响应标头,以便我们查看这些更改是否反映在 HTTP 响应中。
  • 你确定删除cookie的代码真的被调用了吗?
  • 你确定删除cookie的代码真的被调用了吗? - 是的

标签: c# .net cookies


【解决方案1】:

编辑: 在发布此答案时,OP 发布的代码显示 Partner_Portal_Cookie cookie 被删除。此后,发布的代码已被编辑。


您正在尝试删除您的test cookie 对吗? 您的代码示例显示您删除了 Partner_Portal_Cookie cookie。

尝试类似:

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

示例来自mdsn。本质上,我们正在检查 cookie 是否存在。如果是,请创建一个具有同名的新 cookie,并将过期日期设置为过去。

【讨论】:

  • 是的,同意。这是错误的。问题仍然存在。用你的把戏。
  • @PankajDhote 你看到我对原帖的评论了吗?它询问是否实际调用了删除 cookie 代码。
  • HttpCookie cookie = new HttpCookie("test"); cookie.Expires = DateTime.Now.AddDays(1); cookie.Values.Add("test", string.Empty); HttpContext.Response.Cookies.Add(cookie);使用此代码,我今天可以删除 cookie。
【解决方案2】:
 HttpCookie cookie = new HttpCookie(cookieName);
        cookie.Expires = DateTime.Now.AddDays(1);
        cookie.Values.Add(cookieName, string.Empty);
        HttpContext.Response.Cookies.Add(cookie);

这段代码对我有用。

【讨论】:

    【解决方案3】:

    试试这个:

    public static void ClearCookies()
                {
                    HttpCookie cookie = new HttpCookie("test");
    
                    cookie.Name = "test";
                    cookie.Value = string.Empty;
                    cookie.Expires = DateTime.Now.AddDays(-1);
    
                    if (HttpContext.Current.Response.Cookies.AllKeys.Contains("test"))
                    {
                        HttpContext.Current.Response.Cookies.Set(cookie);
                    }
                    else
                    {
                        HttpContext.Current.Response.Cookies.Add(cookie);
                    }
                }
    

    【讨论】:

    • HttpCookie cookie = new HttpCookie("test"); cookie.Expires = DateTime.Now.AddDays(1); cookie.Values.Add("test", string.Empty); HttpContext.Response.Cookies.Add(cookie);使用此代码,我今天可以删除 cookie。
    猜你喜欢
    • 1970-01-01
    • 2012-01-20
    • 2012-07-06
    • 2019-11-13
    • 1970-01-01
    • 2016-12-31
    • 2012-10-20
    • 2020-05-22
    • 1970-01-01
    相关资源
    最近更新 更多