La cookie localhost de Chrome no está configurada

Tengo una aplicación ASP.net que usa una cookie para almacenar el idioma seleccionado por el usuario. Todo funciona bien, excepto cuando estoy en localhost. Reemplazar localhost por 127.0.0.1 hace que funcione nuevamente … ¿por qué?

Vi las restricciones previstas para el archivo: // pero en realidad no puedo encontrar ninguna referencia a la restricción prevista para localhost.

Lo que realmente no puedo entender es por qué la sesión ASP.net (ASP.NET_SessionId) y las cookies de autenticación de formularios ASP.net (.FSAUTHSSO) están configuradas correctamente para el dominio localhost, pero mis cookies no son … ¿por qué?

Ya busqué en Google y nada funciona:

  • Establecer el indicador de línea de comando de Chrome –enable-file-cookies [NO FUNCIONA]
  • Configurar la cookie en HttpOnly [NO IMPORTA]
  • Cambiar la caducidad a la sesión o a una fecha … [NO IMPORTA]
  • Cambiar la ruta de la cookie a la raíz (/) o a cualquier otra cosa [NO IMPORTA]

Entonces, ¿qué importa? 🙂

¿Y por qué pueden establecerse las cookies de ASP.net y las mías no? ¿Cual es la diferencia?

Lo último es mencionar que esto también ocurre en IE, pero funciona bien en FF.

¡Gracias!

Alex

Las cookies están diseñadas para segundo nivel y abajo. Los dominios de primer nivel no funcionarán. En su lugar, debe usar la dirección http://127.0.0.1 (como mencionó) o puede editar su archivo de hosts para asignar una URL diferente con un TLD a la dirección 127.0.0.1, como:

 yoursite.tld 127.0.0.1 

Acabo de investigar esto más; encontró esta respuesta: Cookies en localhost con dominio explícito

intente poner cookie.Domain = null en localhost y use el nombre de dominio de lo contrario.

Buenas noticias. Ahora es posible establecer cookies en localhost en Chrome que inicia Canary build: https://code.google.com/p/chromium/issues/detail?id=551906

Solo tuve el mismo problema en Chrome. Tenía cookie.Secure = cierto. Deshacerse de eso para el servidor local me arregló el problema.

(Tenía el mismo problema, FWIW: trabajó en FF, no IE o Chrome)

Tuve un problema en Chrome donde no se estaba configurando una cookie con una caducidad de 2 semanas en el futuro; esta era la cookie de autenticación (.AspNet.ApplicationCookie), por lo que continuamente me redireccionaban a la página de inicio de sesión. Este problema no ocurrió en otros navegadores que probé.

Terminé experimentando con cookies personalizadas para determinar que Chrome pensaba que la fecha actual era anterior a la actual, así que por ejemplo puse una cookie que expiró en 1 año hoy (2-abr-2017) y en realidad Chrome configuró esta cookie para vence el 1 de enero de 2017 Esto explicaría por qué una cookie con una caducidad de 2 semanas ya se consideró caducada, ya que Chrome estaba cortando 3 meses de la expiración real y, por lo tanto, consideró que ya expiró.

El reinicio de Chrome no solucionó esto: reinicié la PC en esta etapa y esto ‘corrigió’ el error. También debería tener en cuenta que esto solo ocurrió para el localhost , aparentemente cualquier otro sitio estaba bien.

Sé que esto podría ser una tontería, pero me pasó a mí donde tomé una aplicación asp.net mvc donde no pude hacer que trabajaran localmente. Finalmente, otro desarrollador señaló una entrada en el archivo web.config que se había agregado recientemente.

  

Estableciendo requireSSL a “falso” localmente. Recuerde aplicar las transformaciones a través de los entornos. Espero que esto ayude.

Existe un problema en Chromium abierto desde 2011 , que si configura explícitamente el dominio como ‘localhost’, debe establecerlo como false para que funcione o use establecer el dominio como 127.0.0.1 .