2009-08-10 73 views
0

如何删除ASP.NET中特定cookie中的特定值?ASP.NET Cookie子值删除

例如:我有一个Cookie命名为'MyCookie',它包含'MyCookieValueOne', 'MyCookieValueTwo', 'MyCookieValueThree'.

现在我需要删除值'MyCookieValueTwo'值。

我该怎么办?

我们可以使用以下任何属性来实现吗?

Request.Cookies["MyCookie"].Value 
Request.Cookies["MyCookie"].Values 

,为什么?

回答

6

编辑:好的,误解了这个问题。 HttpCookie.Values是NameValueCollection中,所以你可以修改该集合 - 但你将需要重新发送cookie作为一个新的覆盖旧的:

HttpCookie cookie = Request.Cookies["MyCookie"]; 
if(cookie != null) 
{ 
    cookie.Values.Remove("KeyNameToRemove"); 
    Response.AppendCookie(cookie); 
} 

要“删除”你有一个完整的饼干到“过期”了 - 改变其到期日期,并重新发送到客户端:

HttpCookie cookie = Request.Cookies["MyCookie"]; 
if(cookie != null) 
{ 
    cookie.Expires = DateTime.Today.AddMonths(-1); 
    Response.AppendCookie(cookie); 
} 

与.NET饼干的工作是不是有点不直观的多,很遗憾。 AddMonths()是有点任意的。我使用一个月,您可以使用任何东西 - 只需确保过期日期相对于接收计算机的时钟设置为过去。

+0

这不会做这项工作。我只需要删除一个值。但是,这将删除整个Cookie。 – 2009-08-10 18:24:14

+0

请再次阅读问题。 – 2009-08-10 18:24:56