Iniciar sesión con Microsoft
Iniciar sesión o crear una cuenta
Hola:
Seleccione una cuenta diferente.
Tiene varias cuentas
Elija la cuenta con la que desea iniciar sesión.

ASP.NET columna de voz de soporte técnico

Introducción

Bienvenido a la columna Microsoft ASP.NET Support Voice. Soy Nilay B. Shah, con el ASP.NET equipo de soporte técnico para desarrolladores. He trabajado con ASP.NET soporte técnico durante más de un año y medio. La autenticación de formularios es realmente una característica de autenticación interesante. Este artículo trata algunos problemas que los usuarios han encontrado confusos con la autenticación de formularios, como la relación del vale de autenticación de formularios y la cookie de autenticación de formularios y su configuración relevante. Me gustaría dar las gracias a Jerry Orman, responsable técnico del equipo de apoyo ASP.NET, por su increíble ayuda!

Personas preguntarse a veces acerca de la autenticación de formularios "tickets" y "cookies" porque están estrechamente relacionados. He tenido preguntas como estas: ¿Alguien puede explicar la diferencia entre la expiración de la cookie y la expiración del vale? Cuando la cookie expire, el usuario será redirigido a la página de inicio de sesión. ¿Qué sucede cuando expira el billete? ¿También hará que la cookie expire? ¿Qué se actualiza realmente SlidingUpdate?

Me centraré en estos dos aspectos de la autenticación de formularios en este artículo para responder a las siguientes preguntas:

  • ¿Qué es la cookie de autenticación de formularios y vales de autenticación de formularios? ¿Cómo se relacionan?

  • ¿Cuál es el rol de un vale en la autenticación de formularios?

  • ¿Cómo están relacionadas la expiración de las cookies y la expiración del vale?

  • ¿Cómo funciona la expiración variable en el contexto del vale de autenticación de formularios y la cookie de autenticación de formularios?

  • ¿Dónde se puede establecer la propiedad de tiempo de salida de la cookie de autenticación de formularios y del vale de autenticación de formularios?

  • Escenario del problema: la autenticación de formularios puede agotar el tiempo de espera antes del valor del atributo timeout que se establece en el archivo de configuración

¿Qué es la cookie de autenticación de formularios y vales de autenticación de formularios? ¿Cómo se relacionan?

La cookie de autenticación de formularios no es más que el contenedor del vale de autenticación de formularios. El vale se pasa como el valor de la cookie de autenticación de formularios con cada solicitud y es utilizado por la autenticación de formularios, en el servidor, para identificar un usuario autenticado.

Sin embargo, si elegimos usar la autenticación de formularios sin cookies, el vale se pasará en la dirección URL en un formato cifrado. La autenticación de formularios sin cookies se usa porque a veces los exploradores del cliente bloquean las cookies. Esta característica se introduce en Microsoft .NET Framework 2.0.

Para obtener más información, visita el siguiente sitio web de Microsoft Developer Network (MSDN):

http://msdn2.microsoft.com/en-us/library/system.web.configuration.formsauthenticationconfiguration.cookieless.aspx

¿Cuál es el rol de un vale en la autenticación de formularios?

El vale de autenticación de formularios se usa para indicar a la aplicación de ASP.NET quién es usted. Por lo tanto, ticket es el bloque de creación de la seguridad de la autenticación de formularios.

El vale se cifra y firma con la <machineKey> elemento de configuración del archivo Machine.config del servidor. ASP.NET 2.0 utiliza el descifradoKey y el nuevo atributo de descifrado de la <machineKey> elemento para cifrar vales de autenticación de formularios. El atributo de descifrado le permite especificar el algoritmo de cifrado para usar. ASP.NET 1.1 y 1.0 utilizan cifrado 3DES, que no es configurable. La manipulación del valor del vale se determina por un error al descifrar el vale en el servidor. Como resultado, el usuario será redirigido a la página de inicio de sesión.


Si la aplicación se implementa en una granja de servidores web, debe asegurarse de que los archivos de configuración de cada servidor comparten el mismo valor para los atributos validationKey y decryptionKey de la etiqueta <machineKey>, que se usan para hash y descifrado del vale, respectivamente. Debe hacerlo porque no puede garantizar qué servidor administrará solicitudes sucesivas. Para obtener más información sobre el cifrado FormsAuthenticationTicket y las consideraciones de implementación de granja de servidores web, visite el siguiente sitio web de MSDN:

http://msdn2.microsoft.com/en-us/library/ms998288.aspx

Los vales de autenticación de formularios se pueden generar manualmente mediante la clase FormsAuthenticationTicket. Para obtener más información, visite el siguiente sitio web de MSDN:

http://msdn2.microsoft.com/en-us/library/system.web.security.formsauthenticationticket.aspx

¿Cómo están relacionadas la expiración de las cookies y la expiración del vale?

En caso de cookie no persistente, si el vale ha expirado, la cookie también expirará y el usuario será redirigido a la página de inicio de sesión. Por otro lado, si el vale está marcado como persistente, donde la cookie se almacena en el cuadro del cliente, los exploradores pueden usar la misma cookie de autenticación para iniciar sesión en el sitio web en cualquier momento. Sin embargo, podemos usar el método FormsAuthentication.SignOut para eliminar explícitamente las cookies persistentes o no persistentes.

Para obtener más información sobre el método FormsAuthentication.SignOut, visite el siguiente sitio web de MSDN:

http://msdn2.microsoft.com/en-us/library/system.web.security.formsauthentication.signout.aspxCon la autenticación de formularios sin cookies, si el explorador está cerrado, el ticket se pierde y se generará un nuevo ticket en la siguiente solicitud.

¿Cómo funciona la expiración variable en el contexto del vale de autenticación de formularios y la cookie de autenticación de formularios?

¡La caducidad corrediza funciona exactamente de la misma manera!

Veamos un ejemplo: Si se accede a la página de inicio de sesión a las 5:00 00:00:00 PM, debería expirar a las 5:10 00:00:00 PM si el atributo timeout es 10 y el atributo slidingExpiration se establece en TRUE. Ahora, si se vuelve a explorar cualquier página web a las 5:05 00:00:00 p.m., el período de cookies y de tiempo de espera para entradas se restablecerá a las 5:15 00:00:00 p.m.

Nota Si se accede a la página Web antes de que pase la mitad del tiempo de expiración, no se restablecerá la fecha de expiración del vale. Por ejemplo, si se vuelve a acceder a cualquier página web a las 5:04 00:00:00 p.m., no se restablecerán las cookies ni el período de tiempo de espera del vale.

Para obtener más información, visite el siguiente sitio web de MSDN:

http://msdn2.microsoft.com/en-us/library/1d3t3c61(vs.71).aspx

¿Dónde se puede establecer el valor de tiempo de salida de la cookie de autenticación de formularios y del vale de autenticación de formularios?

La única configuración que puede establecer es en el archivo Web.config o en el archivo de Machine.config, en la etiqueta> formularios <. Este cambio determinará el período de tiempo de espera de autenticación de formularios en el contexto de un vale o cookie, a menos que el vale se genere manualmente.


<!-- atributos de formularios:
name="[cookie name]": establece el nombre de la cookie utilizada para la autenticación de formularios.
loginUrl="[url]": establece la dirección URL al que redirigir el cliente para que se autentificación.
protection="[Todos|Ninguna|Cifrado|Validación]": establece el modo de protección de los datos de las cookies.
timeout="[minutes]": establece la duración de la cookie para que sea válida (restablecer en cada solicitud).
path="/": establece la ruta de acceso de la cookie.
requireSSL="[true|false]" - ¿Debe enviarse la cookie de autenticación de formularios solo a través de SSL?
slidingExpiration="[true|false]" - ¿Deben volver a emitirse la cookie de autenticación de formularios y el vale si están a punto de expirar?
--> Para obtener más información, visita el siguiente sitio web de MSDN:

http://msdn2.microsoft.com/en-us/library/1d3t3c61.aspxSi el vale se genera manualmente mediante la clase FormsAuthenticationTicket, el tiempo de espera se puede establecer a través del atributo Expiration. Este valor invalidará el valor del atributo timeout especificado en los archivos de configuración.

Para obtener más información sobre los miembros de FormsAuthenticationTicket, visite el siguiente sitio web de MSDN:

http://msdn2.microsoft.com/en-us/library/system.web.security.formsauthenticationticket_members.aspx

Escenario del problema: la autenticación de formularios puede agotar el tiempo de espera antes del valor del atributo timeout que se establece en el archivo de configuración

Si el vale de autenticación de formularios se genera manualmente, la propiedad de tiempo de espera del vale invalidará el valor establecido en el archivo de configuración. Por lo tanto, si ese valor es menor que el valor en el archivo de configuración, el vale de autenticación de formularios expirará antes de que el valor del atributo del tiempo de espera del archivo de configuración y viceversa. Por ejemplo, supongamos que los formularios de <>atributo timeout se establecen en 30 en el archivo Web.config y el valor Expiración del vale se establece en 20 minutos. En este caso, el vale de autenticación de formularios expirará después de 20 minutos y el usuario tendrá que iniciar sesión de nuevo después.

Vínculos relacionados

910439 Solucionar problemas de autenticación de formularios
 

301240 Cómo implementar la autenticación basada en formularios en la aplicación de ASP.NET mediante C# .NET
 

Espero que haya encontrado útil esta información para aliviar la confusión relacionada con la cookie y el vale de autenticación de formularios de ASP.NET. Recuerde que las columnas Voz de soporte técnico son para usted.

¿Necesita más ayuda?

¿Quiere más opciones?

Explore las ventajas de las suscripciones, examine los cursos de aprendizaje, aprenda a proteger su dispositivo y mucho más.

Las comunidades le ayudan a formular y responder preguntas, enviar comentarios y leer a expertos con conocimientos extensos.

¿Le ha sido útil esta información?

¿Cuál es tu grado de satisfacción con la calidad del lenguaje?
¿Qué ha afectado a su experiencia?
Si presiona Enviar, sus comentarios se usarán para mejorar los productos y servicios de Microsoft. El administrador de TI podrá recopilar estos datos. Declaración de privacidad.

¡Gracias por sus comentarios!

×