如何使用ASP.NET HttpSession使ASP.NET会话cookie过期?

时间:2008-12-07 04:28:02

标签: asp.net session httpcookie

我创建了一个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会话相同的值。我如何以编程方式确定这个?

1 个答案:

答案 0 :(得分: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将不被接受,您将不得不发布一个新的。