4

我创建了一个 HttpCookie 以便跨子域共享数据:

HttpCookie cookie = new HttpCookie("sessionGUID");
cookie.Value = value;
cookie.Domain = ".example.com";

Response.Cookies.Set(cookie);

我不小心假设它是一个“会话”cookie(不会过期),它会与我的 ASP.NET 会话一起过期。当然,对于浏览器来说,这是一个“浏览器会话”cookie,并没有链接到 ASP.NET 会话。

我想要做的是将这些“浏览器会话”cookie 与 ASP.NET 会话一起过期。

我想我只需要将 Expires 设置为与 ASP.NET 会话相同的值。我将如何以编程方式确定这一点?

4

1 回答 1

1

如果他们只需要靠近,那么就像这样:

int expirationMinutes = Session.Timeout;
if (System.Web.HttpContext.Current.Response.Cookies["monster"]!=null)
{
    System.Web.HttpContext.Current.Response.Cookies["monster"].Expires =
                                 DateTime.Now.AddMinutes(expirationMinutes);
}

会话计时器重置用户发布或获取的所有内容,因此由于代码正在服务器上执行,当前会话的剩余时间为 Session.Timeout,例如 20 分钟。

20 分钟后,cookie 将不被接受,您必须发布一个新的。

于 2008-12-07T04:55:27.800 回答