Minha análise na minha atualização sobre o cookie não sendo retornado para o servidor estava incorreta. Em algum momento antes da execução do meu código de log, o cookie estava sendo expurgado do lado do servidor da coleção de cookies.
Usando o Wireshark, determinei que, na verdade, duas cópias do cookie .ASPXAUTH
estavam sendo enviadas para o servidor, uma inválida e outra válida. Tecnicamente, a ordem dos cookies é não-determinística, então acho que estava afetando as pessoas cujos navegadores estavam enviando um cookie inválido primeiro ... A ASP.NET simplesmente não considerou o segundo cookie válido.
Como mencionado acima, o cookie em questão era .ASPXAUTH
, que é o nome padrão do cookie de autenticação do .NET. Acreditamos que existissem duas cópias do mesmo, como se ele tivesse sido enviado em um domínio diferente no passado (uma vez como www.mysite.com
e em um momento diferente como .mysite.com
).
A solução mais fácil, que funcionou perfeitamente, foi alterar o nome do cookie de autenticação, definindo o seguinte em Web.config
:
<authentication mode="Forms">
<forms name="SOMEOTHERCOOKIENAME" />
</authentication>
Em seguida, certifique-se de que o novo cookie só será enviado com um único valor que corresponderá a uma solicitação específica!