【问题标题】:How to remove cookie from server side in c#如何在c#中从服务器端删除cookie
【发布时间】:2014-09-17 08:32:57
【问题描述】:

我有一个 asp.net mvc 4 项目,尝试更新我的 cookie,但不是这个,而是创建另一个 cookie,例如,我有一个名为“page”的 3 个重复 cookie。有人知道如何解决这个问题吗?

if (page != null && Request.Browser.Cookies) {
                if (Response.Cookies.AllKeys.Contains("page")) {
                    var aCookie = new HttpCookie("page") { Expires = DateTime.Now.AddDays(-1) };
                    Response.Cookies.Add(aCookie);
                }

                var pages = new HttpCookie("page") { Value = page.ToString(), Expires = DateTime.Now.AddDays(7) };
                Response.Cookies.Add(pages);
            }

【问题讨论】:

  • 在添加过期cookie之前删除:Response.Cookies.Remove("page");

标签: c# asp.net asp.net-mvc-4 cookies


【解决方案1】:

您是否尝试在添加新的 cookie 之前删除该 cookie。

if (page != null && Request.Browser.Cookies)
{
    Response.Cookies.Remove("page");
    var pages = new HttpCookie("page") { Value = page.ToString(), Expires = DateTime.Now.AddDays(7) };
    Response.Cookies.Add(pages);
}

请注意,如果没有页面 cookie,则 Response.Cookies.Remove("page") 不会抛出异常,因此不需要测试其是否存在。

【讨论】:

    【解决方案2】:

    如果您想从客户端删除您的 cookie,您应该将其设置为过期:

    if (page != null && Request.Browser.Cookies) {
        Response.Cookies.Remove("page");
        var aCookie = new HttpCookie("page") { Expires = DateTime.Now.AddDays(-1) };
        Response.Cookies.Add(aCookie);
    }
    

    但如果您只需要更新它,只需将其从响应中删除并添加一个新版本即可:

    if (page != null && Request.Browser.Cookies) {
        Response.Cookies.Remove("page");
        var pages = new HttpCookie("page") { Value = page.ToString(), Expires = DateTime.Now.AddDays(7) };
        Response.Cookies.Add(pages);
    }
    

    【讨论】:

      猜你喜欢
      • 2011-07-09
      • 2019-04-30
      • 2021-03-17
      • 2015-06-05
      • 2015-12-28
      • 2011-07-14
      • 2015-05-06
      • 2015-04-27
      • 1970-01-01
      相关资源
      最近更新 更多