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.

È stato utile?

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);
}
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top