Прийняття заголовка запитання до ОП як видалення всіх файлів cookie - "Видалити файли cookie на веб-сайті"
Я десь натрапив на код Дейва Домагали в Інтернеті. Я відредагував Дейв, щоб дозволити файли 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, встановлені вами вручну, як тут ідентифікатор користувача. ІCookies["whatever"]
ніколи не має значення null; фреймворк створить файл cookie, якщо ви запитаєте неіснуючий файл cookie.