Pregunta

Mientras trabajaba con ASP.Net Forms Authentication me encontré con la cookie .ASPXAUTH. Tengo un par de preguntas:

  • ¿Cuál es el propósito de esta cookie?
  • ¿Cuál es la ubicación de esta cookie?
¿Fue útil?

Solución

La cookie ASPXAUTH se usa para determinar si un usuario está autenticado.

En cuanto a la ubicación de la cookie, eso depende de su navegador. Si está utilizando Firefox, puede ver la cookie haciendo clic en Herramientas - > Opciones - > Intimidad. Luego, desplácese hacia abajo hasta el dominio y amplíelo para ver la cookie y su valor. El valor se cifra mediante la clave de la máquina (ubicada en el archivo machine.config o web.config del servidor), por lo que mirar la cookie en el cliente realmente no le proporcionará ninguna información. Puede descifrar / ver el valor en el lado del servidor usando:

HttpCookie authCookie = Request.Cookies[FormsAuthentication.FormsCookieName];//.ASPXAUTH
FormsAuthenticationTicket authTicket = FormsAuthentication.Decrypt(authCookie.Value);

donde authTicket tiene estos campos:

ingrese la descripción de la imagen aquí

La declaración " ASPXAUTH se usa básicamente para mantener el estado de sesión de ASP.NET " Es incorrecto. ASP.NET emite una cookie completamente diferente, llamada ASP.NET_SessionId, para rastrear el estado de la sesión.

Otros consejos

En realidad, la cookie .ASPXAUTH no le dice con precisión cuándo el usuario está realmente autenticado. Cuando el usuario cierra sesión en la aplicación, la cookie .ASPXAUTH se elimina del navegador. Sin embargo, si regresa al sitio dentro de un corto período de tiempo (con el tiempo de espera de la cookie de autenticación de formulario), y edita la nueva cookie de ASP.NET_SessionId con lo siguiente:

  • cambiar " nombre " campo de " ASP.NET_SessionId " a " .ASPXAUTH "
  • cambiar " valor " desde ID de sesión de 24 caracteres a la antigua cadena de autenticación de 448 caracteres

Después de la actualización, podrá asumir la identidad del usuario autenticado sin volver a autenticarse técnicamente. (nuevamente, suponiendo que haga esto dentro del tiempo de espera específico almacenado dentro de la cadena de autenticación encriptada .ASPXAUTH)

Una buena blog explica el problema con más detalle. Una posible solución es unir el .ASPXAUTH con la sesión ASP.

Si las interacciones de un usuario con la URL de inicio de sesión HTML han permitido que el servidor TSWPP establezca la identidad del usuario, el servidor remoto DEBERÍA generar una cookie que identifique al usuario y permita la autenticación al servidor. El contenido de la cookie DEBE estar firmado y encriptado. La implementación específica de esta cookie, incluidos los algoritmos de firma y cifrado, depende de la implementación del servidor TSWPP, porque solo el servidor debe analizar el contenido de la cookie. Si el servidor implementa la cookie, la cookie DEBE devolverse en una carga HTTP con un tipo de contenido de " application / x-msts-webfeed-login " ;.

http://msdn.microsoft.com/en-us/library/ ee920427.aspx

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top