Prendre le titre de la question du PO comme suppression de tous les cookies - "Supprimer les cookies sur le site Web"
Je suis tombé quelque part sur le code de Dave Domagala sur le Web. J'ai modifié Dave's pour autoriser également les cookies Google Analytics - qui parcouraient tous les cookies trouvés sur le site Web et les supprimaient tous. (Du point de vue du développeur - mettre à jour un nouveau code dans un site existant est une bonne idée pour éviter les problèmes avec les utilisateurs revisitant le site)
J'utilise le code ci-dessous en tandem en lisant d'abord les cookies, en conservant toutes les données requises - puis en réinitialisant les cookies après avoir tout nettoyé avec la boucle ci-dessous.
Le code:
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);
}
Ajout: si vous utilisez Google Analytics
La boucle / suppression ci-dessus supprimera TOUS les cookies du site, donc si vous utilisez Google Analytics - il serait probablement utile de conserver le cookie __utmz car celui-ci garde une trace de l'origine du visiteur, du moteur de recherche utilisé, de quoi le lien a été cliqué, quel mot-clé a été utilisé et où ils se trouvaient dans le monde lorsque votre site Web a été consulté.
Donc, pour le garder, enveloppez une simple instruction if une fois que le nom du cookie est connu:
...
aCookie = new HttpCookie(cookieName);
if (aCookie.Name != "__utmz")
{
aCookie.Value = "";
aCookie.Expires = DateTime.Now.AddDays(-1);
HttpContext.Current.Response.Cookies.Add(aCookie);
}
Session.Abandon
effacera le cookie de session ASP.NET, mais pas les cookies que vous avez définis manuellement, comme userID ici. EtCookies["whatever"]
n'est jamais nul; le framework créera un cookie si vous en demandez un inexistant.