É possível excluir cookies de subdomínio?
Pergunta
Se houver um conjunto de cookies para um subdomínio, metric.foo.com, há uma maneira para mim para excluir o cookie metric.foo.com em uma solicitação para www.foo.com? O navegador (pelo menos Firefox) parece ignorar um Set-Cookie com um domínio de metric.foo.com.
Solução
Os cookies são apenas legíveis pelo domínio que os criou, por isso, se o cookie foi criado em metric.foo.com, ele terá que ser excluído sob o mesmo domínio que ele foi criado. Isto inclui sub-domínios.
Se você é obrigado a apagar um cookie do metric.foo.com, mas estão actualmente em execução uma página na www.foo.com, você não vai ser capaz de.
A fim de fazer isso, você precisa carregar a página de metric.foo.com, ou criar o cookie sob foo.com para que possa ser acessível em qualquer subdomínio. Ou use este:
Response.Cookies ( "MyCookie"). Domain = ".foo.com"
... enquanto criá-la, e antes de excluí-lo.
.. não testado -. Deve funcionar
Outras dicas
Eu tive o mesmo problema com subdomínios. Por alguma razão, recebendo o cookie a partir do primeiro pedido não funcionou. Em vez I terminou apenas a criação de um novo cookie com o mesmo nome do cookie, e prazo de validade no passado. Isso funcionou perfeitamente:
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); }