È possibile eliminare i cookie del sottodominio?
Domanda
Se esiste un cookie impostato per un sottodominio, metric.foo.com, c'è un modo per me di eliminare il cookie metric.foo.com su una richiesta a www.foo.com? Il browser (almeno Firefox) sembra ignorare un Set-Cookie con un dominio di metric.foo.com.
Soluzione
I cookie sono leggibili solo dal dominio che li ha creati, quindi se il cookie è stato creato su metric.foo.com, dovrà essere eliminato nello stesso dominio in cui è stato creato. Ciò include i sottodomini.
Se ti viene richiesto di eliminare un cookie da metric.foo.com, ma al momento stai eseguendo una pagina su www.foo.com, non sarai in grado di farlo.
Per fare ciò, è necessario caricare la pagina da metric.foo.com o creare il cookie in foo.com in modo che possa essere accessibile da qualsiasi sottodominio. O usa questo:
Response.cookies (" mycookie "). domain = " .foo.com "
... durante la creazione E prima di eliminarlo.
..untested - dovrebbe funzionare.
Altri suggerimenti
Ho avuto lo stesso problema con i sottodomini. Per qualche motivo, ottenere il cookie prima dalla richiesta non ha funzionato. Invece ho finito per creare un nuovo cookie con lo stesso nome di cookie e data di scadenza in passato. Funzionava perfettamente:
void DeleteSubdomainCookie(HttpResponse response, string name) { HttpCookie cookie = new HttpCookie(name); cookie.Expires = DateTime.Now.AddMonths(-1); cookie.Domain = ".yourdomain.com"; response.Cookies.Add(cookie); }