Принимая заголовок вопроса ОП как удаление всех файлов cookie - «Удалить файлы cookie на веб-сайте»
Где-то в сети я наткнулся на код Дэйва Домагала. Я отредактировал Dave's, чтобы разрешить использование файлов cookie Google Analytics, которые перебирали все файлы cookie, найденные на сайте, и удаляли их все. (С точки зрения разработчика - обновление нового кода на существующем сайте - приятный прием, позволяющий избежать проблем с повторным посещением сайта пользователями).
Я использую приведенный ниже код в тандеме с чтением файлов cookie сначала, сохраняя все необходимые данные, а затем сбрасываю файлы cookie после очистки всего с помощью приведенного ниже цикла.
Код:
int limit = Request.Cookies.Count;
HttpCookie aCookie;
string cookieName;
for(int i = 0; i < limit; i++)
{
cookieName = Request.Cookies[i].Name;
aCookie = new HttpCookie(cookieName);
aCookie.Value = "";
aCookie.Expires = DateTime.Now.AddDays(-1);
Response.Cookies.Add(aCookie);
}
Дополнение: если вы используете Google Analytics
Вышеупомянутый цикл / удаление удалит ВСЕ файлы cookie для сайта, поэтому, если вы используете Google Analytics - вероятно, было бы полезно сохранить файл cookie __utmz, поскольку он отслеживает, откуда пришел посетитель, какая поисковая система использовалась, что была нажата ссылка, какое ключевое слово было использовано и где они находились в мире, когда ваш сайт был открыт.
Итак, чтобы сохранить его, оберните простой оператор if, когда имя файла cookie известно:
...
aCookie = new HttpCookie(cookieName);
if (aCookie.Name != "__utmz")
{
aCookie.Value = "";
aCookie.Expires = DateTime.Now.AddDays(-1);
HttpContext.Current.Response.Cookies.Add(aCookie);
}
Session.Abandon
очистит cookie сеанса ASP.NET, но не файлы cookie, которые вы установили вручную, например userID здесь. ИCookies["whatever"]
никогда не бывает нулевым; фреймворк создаст файл cookie, если вы запросите несуществующий.