Considerando il titolo della domanda dell'OP come eliminare tutti i cookie - "Elimina cookie nel sito Web"
Mi sono imbattuto in codice da Dave Domagala sul web da qualche parte. Ho modificato Dave's per consentire anche i cookie di Google Analytics, che ha eseguito il loop di tutti i cookie trovati sul sito Web e li ha eliminati tutti. (Dal punto di vista dello sviluppatore, aggiornare il nuovo codice in un sito esistente è un bel tocco per evitare problemi con gli utenti che rivisitano il sito).
Uso il codice seguente insieme alla lettura dei cookie prima, conservando tutti i dati richiesti, quindi reimpostando i cookie dopo aver pulito tutto con il ciclo sottostante.
Il codice:
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);
}
Aggiunta: se utilizzi Google Analytics
Il ciclo / cancellazione di cui sopra cancellerà TUTTI i cookie per il sito, quindi se utilizzi Google Analytics, sarebbe probabilmente utile trattenere il cookie __utmz poiché questo tiene traccia della provenienza del visitatore, quale motore di ricerca è stato utilizzato, cosa è stato fatto clic sul collegamento, quale parola chiave è stata utilizzata e dove si trovavano nel mondo quando è stato effettuato l'accesso al tuo sito web.
Quindi, per mantenerlo, racchiudi una semplice istruzione if una volta che il nome del cookie è noto:
...
aCookie = new HttpCookie(cookieName);
if (aCookie.Name != "__utmz")
{
aCookie.Value = "";
aCookie.Expires = DateTime.Now.AddDays(-1);
HttpContext.Current.Response.Cookies.Add(aCookie);
}
Session.Abandon
cancellerà il cookie di sessione ASP.NET, ma non i cookie impostati manualmente, come l'ID utente qui. ECookies["whatever"]
non è mai nullo; il framework creerà un cookie se ne chiedi uno inesistente.