我创建了一个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会话相同的值。我如何以编程方式确定这个?
答案 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将不被接受,您将不得不发布一个新的。