use*_*312 0 .net asp.net cookies
如何删除ASP.NET中特定cookie中的特定值?
例如:我有一个名为Cookie的Cookie 'MyCookie',它包含值'MyCookieValueOne', 'MyCookieValueTwo', 'MyCookieValueThree'.
现在我需要删除该值'MyCookieValueTwo'.
我该怎么办?
我们可以使用以下任何属性来实现此目的吗?
Request.Cookies["MyCookie"].Value
Request.Cookies["MyCookie"].Values
Run Code Online (Sandbox Code Playgroud)
为什么?
编辑:好的,误读了这个问题.HttpCookie.Values是一个NameValueCollection,因此您可以修改该集合 - 但您需要重新发送cookie作为新的cookie来覆盖旧的:
HttpCookie cookie = Request.Cookies["MyCookie"];
if(cookie != null)
{
cookie.Values.Remove("KeyNameToRemove");
Response.AppendCookie(cookie);
}
Run Code Online (Sandbox Code Playgroud)
要"删除"整个cookie,您必须"过期"它 - 更改其过期日期并将其重新发送给客户端:
HttpCookie cookie = Request.Cookies["MyCookie"];
if(cookie != null)
{
cookie.Expires = DateTime.Today.AddMonths(-1);
Response.AppendCookie(cookie);
}
Run Code Online (Sandbox Code Playgroud)
不幸的是,在.NET中使用cookie有点不直观.AddMonths()有点武断.我使用一个月,你可以使用任何东西 - 只需要确保相对于接收计算机的时钟过去设置过期日期.
| 归档时间: |
|
| 查看次数: |
1710 次 |
| 最近记录: |