如何在ASP.NET中删除特定cookie中的特定值?
例如:我有一个名为'MyCookie'
的Cookie,它包含值'MyCookieValueOne', 'MyCookieValueTwo', 'MyCookieValueThree'.
现在我需要删除值'MyCookieValueTwo'
。
我该怎么办?
我们可以使用以下任何属性来实现这一点吗?
Request.Cookies["MyCookie"].Value
Request.Cookies["MyCookie"].Values
为什么?
发布于 2009-08-10 10:22:34
编辑:好的,误读了问题。cookie是一个NameValueCollection,所以你可以修改这个集合--但是你需要重新发送一个新的cookie来覆盖旧的:
HttpCookie cookie = Request.Cookies["MyCookie"];
if(cookie != null)
{
cookie.Values.Remove("KeyNameToRemove");
Response.AppendCookie(cookie);
}
要“删除”整个cookie,您必须使其“过期”-更改其过期日期并将其重新发送给客户端:
HttpCookie cookie = Request.Cookies["MyCookie"];
if(cookie != null)
{
cookie.Expires = DateTime.Today.AddMonths(-1);
Response.AppendCookie(cookie);
}
不幸的是,在.NET中使用cookies非常不直观。AddMonths()有点随意。我使用一个月,你可以使用任何东西-只需要确保过期日期是相对于接收计算机的时钟设置的过去。
https://stackoverflow.com/questions/1256388
复制