Как удалить все просроченные куки из CookieCollection? - PullRequest
5 голосов
/ 18 октября 2011

Как удалить все файлы cookie, срок действия которых истек, из коллекции Cookie?

Ответы [ 3 ]

2 голосов
/ 18 октября 2011

Попробуйте это.

var cookies = Request.Cookies;
foreach (HttpCookie cookie in cookies)
{
    if (cookie.Expires < DateTime.Now)
    {
        Request.Cookies.Remove(cookie.Name);
    }
}

Обратите внимание, что выдержка из MSDN ,

Вызов метода Remove из коллекции Cookies удаляет cookie изсбор на стороне сервера, поэтому куки не будут отправлены клиенту.Однако этот метод не удаляет cookie-файл с клиента, если он там уже существует.

1 голос
/ 18 октября 2011

Вы не можете напрямую удалить куки на компьютере пользователя. Однако вы можете указать браузеру пользователя удалить 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);
}
0 голосов
/ 18 октября 2011

То, как вы удаляете куки, состоит в том, чтобы изменить дату его истечения на нечто, что уже прошло. , но в первом случае из браузера никогда не следует отправлять куки с истекшим сроком ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...