如何从CookieCollection中删除所有过期的cookie?
答案 0 :(得分:2)
试试这个。
var cookies = Request.Cookies;
foreach (HttpCookie cookie in cookies)
{
if (cookie.Expires < DateTime.Now)
{
Request.Cookies.Remove(cookie.Name);
}
}
调用Cookies集合的Remove方法会删除cookie 从服务器端的集合,所以不会发送cookie 给客户。但是,该方法不会从中删除cookie 客户端,如果它已经存在那里。
答案 1 :(得分:1)
您无法直接删除用户计算机上的Cookie。但是,您可以通过将cookie的过期日期设置为过去日期来指示用户的浏览器删除cookie。下次用户向设置cookie的域或路径中的页面发出请求时,浏览器将确定cookie已过期并将其删除。
if (Request.Cookies["UserSettings"] != null)
{
HttpCookie myCookie = new HttpCookie("UserSettings");
myCookie.Expires = DateTime.Now.AddDays(-1);//add -1 days
Response.Cookies.Add(myCookie);
}
答案 2 :(得分:0)
删除Cookie的方法是将过期日期更改为已经过去的某些内容.. 但是在第一种情况下永远不会从浏览器发送过期的Cookie ... < / p>