¿Por qué no asp.net creará cookies en localhost?

Bueno, esto realmente está empezando a molestarme. Tengo una configuración simple de proyecto web ubicada en: “C: \ Projects \ MyTestProject \”. En IIS en mi máquina, he mapeado un directorio virtual en esta ubicación para que pueda ejecutar mis sitios localmente (entiendo que puedo ejecutarlo desde Visual Studio, me gusta más este método). He llamado a este directorio virtual “mtp” y lo tengo acceso a través de http: //localhost/mtp/index.aspx . Todo esto está funcionando bien.

Sin embargo, cada vez que trato de crear una cookie, ¿nunca se escribe? Intenté esto en FF3 e IE7 y simplemente no escribiré la cookie. No lo entiendo Tengo “127.0.0.1 localhost” en mi archivo hosts, realmente no puedo pensar en otra cosa que pueda hacer. Gracias por cualquier consejo.

James

Las especificaciones de cookies requieren dos nombres y un punto entre, por lo que su cookiedomain no puede ser “localhost”. Así es como lo resolví:

  1. Agregue esto a su archivo% WINDIR% \ System32 \ drivers \ etc \ hosts: 127.0.0.1 dev.livesite.com

  2. Al desarrollar, utiliza http://dev.livesite.com en lugar de http: // localhost

  3. Use “.livesite.com” como cookiedomain (con un punto al principio) al crear la cookie. Los navegadores modernos ya no requieren un punto inicial , pero es posible que desee utilizarlo de todos modos para una compatibilidad hacia atrás.

  4. Ahora funciona en todos los sitios:

Como nunca se ha elegido una respuesta, supongo que todavía puedo arrojar algo más.

Una razón por la que puede encontrarse sin cookies escritas con una aplicación que se ejecuta en localhost es la configuración de httpCookies en web.config. Si el atributo de dominio se estableció en un dominio específico y se ejecuta en localhost, las cookies no se escribieron para mí.

Elimine el atributo de dominio en desarrollo y las cookies se escriben:

    

¿Estás asignando una fecha de vencimiento a la cookie? De forma predeterminada, la cookie caducará cuando la sesión del navegador caduque, lo que significa que no escribirá nada en el disco.