【问题标题】:Why cookie is being deleted为什么 cookie 被删除
【发布时间】:2017-01-10 14:09:11
【问题描述】:

我有一个 Asp.Net 网站,并且有 2 个 cookie。

我通过这段代码创建这些 cookie;

public static void CreateCookie(string Cookie)
{
  HttpCookie cookie = new HttpCookie(Cookie);
  cookie.Expires = DateTime.Now.AddYears(1);
  HttpContext.Current.Response.Cookies.Add(cookie);
}

CreateCookie("Cookie1");
CreateCookie("Cookie2");

所以两个 cookie 的生命周期都是 1 年,正如我在 Chrome 上看到的那样。

但是当我在 1 天后查看时,我看到 Cookie1 被自动删除,
虽然我没有进入网站就查看了 cookie,只是在 Chrome 上查看。

我无法阻止这一点。为什么会出现这种情况?
我该如何解决这个问题?

更新:
此错误仅发生在我自己的网站上。
我要在另一台电脑和另一个浏览器上检查这个。

【问题讨论】:

  • 相反的是discussed here,我很确定你有一个隐私设置或插件处于活动状态,无论如何都会删除cookie。请详细说明这是否仅发生在此浏览器上、此机器上、此站点上等,如How to Ask 中所述。
  • 好吧,我添加了更新。
  • 但是我的浏览器没有加载任何扩展。
  • 您访问网站的方式是否相同?请注意,例如,当您通过 127.0.0.1 访问网站时,不会显示为 localhost 创建的 cookie。

标签: c# asp.net cookies httpcontext httpcookie


【解决方案1】:

您没有为 cookie 设置值。添加不带值的 cookie 将使浏览器删除具有给定名称的 cookie(如果存在)。

使用一个值:

public static void CreateCookie(string Cookie, string value)
{
  HttpCookie cookie = new HttpCookie(Cookie, value);
  cookie.Expires = DateTime.Now.AddYears(1);
  HttpContext.Current.Response.Cookies.Add(cookie);
}

CreateCookie("Cookie1", "Hello");
CreateCookie("Cookie2", "world");

【讨论】:

    【解决方案2】:

    尝试通过以下方式将 cookie 链接到会话:

    HttpCookie authCookie = new HttpCookie(Cookie, Session.SessionID);
    

    【讨论】:

      猜你喜欢
      • 2012-09-22
      • 1970-01-01
      • 2015-12-10
      • 2010-10-12
      • 2013-02-25
      • 2011-08-06
      • 2022-01-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多