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.

Foi útil?

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);
}
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top