2009-12-14 20 views
5

Im trabajando en un proyecto web en ASP .NET MVC 2.ASPXAUTH cookie no se está guardando

En este proyecto almacenamos cierta información dentro de una galleta de ecripted (la cookie ASPXAUTH) para evitar la necesidad de consultar el PP por cada solicitud

Lo que pasa es que el código de esta pieza ha dejado de funcionar repentinamente.

Revisé los cambios realizados en el código en el servidor de control de código fuente para cualquier cosa que podría estar causando, no encontré nada. Incluso volví a una copia de trabajo conocida (trabajando en PC de otras personas, el mismo código, etc.) pero después de la depuración, parece que la cookie .ASPXAUTH ya no se está guardando. En cambio, se está configurando la cookie ASP.NET_SessionId ... (que antes no era)

Cambié el archivo web.config para desactivar el sessionState. Esto eliminó la cookie ASP.NET_SessionId de establecerse, pero aún no está guardando la cookie de autenticación.

Recientemente he instalado algunas actualizaciones de Microsoft Windows XP, pero la otra persona (cuya PC ejecuta la aplicación muy bien) también lo hizo.

Después de googlear, alguna información que encontré señaló un problema con la fecha de caducidad de la cookie. Por ejemplo, la PC no tenía la hora/fecha correctas (este no era el caso) y otras porque la fecha de caducidad de la cookie se había establecido incorrectamente. (Lo comprobé y se está configurando correctamente) ...

El problema persiste con otros navegadores además del que estoy usando (Chrome) lo intenté con IE6.

¿Alguna idea sobre por qué esto está sucediendo?

Continuaré publicando cualquier información útil que pueda encontrar.

Gracias de antemano.

Respuesta

8

Esto podría ser que su cookie creció demasiado. Me encontré con el mismo problema. Si la cookie se vuelve demasiado grande, simplemente no va a funcionar, dependiendo del navegador, por supuesto

MSDN

cookies se limitan generalmente a 4096 bytes y no se puede almacenar más de 20 cookies por sitio. Al utilizar una única cookie con subclaves, utiliza menos de esas 20 cookies que su sitio tiene asignadas. Además, una sola cookie ocupa alrededor de 50 caracteres por sobrecarga (información de vencimiento, etc.), más la longitud del valor que almacena en ella, todo lo cual cuenta hacia el límite de 4096 bytes. Si almacena cinco subclaves en lugar de cinco cookies separadas, guardará la sobrecarga de las cookies separadas y puede ahorrar alrededor de 200 bytes.

What is the maximum size of a web browser's cookie's key?

what happens when cookies file exceeds maximum size?

+0

Lo has clavado, es definitivamente un problema de tamaño. Muchas gracias. :] –

0

Una manera fácil de comprobar el tamaño de las cookies es depurar y ejecutar el siguiente código

int cookieSize = System.Text.UTF8Encoding.UTF8.GetByteCount(faCookie.Values.ToString()); 

Si este es el límite, que se vayan a plantear problemas.

Cuestiones relacionadas