2008-12-07 42 views
4

我已经为了跨越一个子域共享数据创建的HttpCookie:如何使ASP.NET会话cookie在ASP.NET HttpSession中过期?

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

Response.Cookies.Set(cookie); 

我漫不经心地假设,因为它是一个“会话”饼干(没有到期),这将伴随着我的ASP.NET会话过期。当然,对于浏览器来说,这是一个'浏览器会话'cookie,并且不链接到ASP.NET会话。

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

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

回答

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将不被接受,您将不得不发布新的cookie。

+0

doh。我查看了Session对象,但我懒得向下滚动并查看Timeout属性。它乍看起来似乎没有什么有趣的地方,我也无法在其他一些对象上找到它。谢谢! – 2008-12-08 02:15:48