Comprender el vale de autenticación de formularios y la Cookie

Columna de voz de soporte de ASP.NET

Comprender el vale de autenticación de formularios y la Cookie

Para personalizar esta columna a sus necesidades, deseamos invitar a enviar sus ideas sobre temas que le interesan los problemas que desea ver y abordaron en próximas columnas de voz de soporte y artículos de Knowledge Base. Puede enviar sus ideas y comentarios mediante el Preguntar para el formulario. También hay un vínculo al formulario en la parte inferior de esta columna.

Introducción

Bienvenido a la columna de voz de soporte de ASP.NET de Microsoft. Soy Nilay B. Shah del el equipo de soporte técnico de desarrolladores ASP.NET. He estado trabajando con ASP.NET soporte para más de un año y medio. Autenticación mediante formularios es realmente una característica de autenticación interesantes. Este artículo trata algunos problemas que los usuarios han encontrado confusos con la autenticación de formularios, como la relación entre el vale de autenticación de formularios y la cookie de autenticación de formularios y sus valores correspondientes. Me gustaría dar las gracias a Jerry Orman, responsable del equipo técnico para el equipo de soporte ASP.NET, por su ayuda increíble!

A veces se preguntan acerca de vales "autenticación de formularios" y "cookies" ya que están estrechamente relacionados. ¿Me he encontrado con preguntas como éstas: puede alguien explicarme la diferencia entre la caducidad de la cookie y la caducidad del vale? Cuando la cookie expira, el usuario será redirigido a la página de inicio de sesión. ¿Qué sucede cuando caduca el vale? ¿También hará la cookie caduque?. ¿¿SlidingUpdate realmente la actualización?.

Me centraré en estos dos aspectos de la autenticación de formularios en este artículo para responder las preguntas siguientes:
  • ¿Qué es el vale de autenticación de formularios y la cookie de autenticación de formularios?. ¿Cómo se relacionan?.
  • ¿Qué es la función de un vale de autenticación de formularios?
  • ¿Cómo se relacionan expiración de la cookie y la caducidad del vale?
  • ¿Cómo funciona la caducidad deslizante en el contexto del vale de autentificación de formularios y la cookie de autentificación de formularios?.
  • ¿Dónde se puede establecer la propiedad de tiempo de espera de la cookie de autentificación de formularios y el vale de autentificación de formularios?.
  • Escenario del problema: es posible antes de que el valor del atributo de tiempo de espera se establece en el archivo de configuración de la autenticación por formularios.

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

Cookie de autenticación de formularios no es más que el contenedor para el 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 se utiliza autenticación de formularios, en el servidor, para identificar un usuario autenticado.

Sin embargo, si se decide utilizar la autenticación de formularios sin cookies, el vale se pasará en la dirección URL en un formato cifrado. Se utiliza la autenticación de formularios sin cookies porque a veces los exploradores cliente bloquean las cookies. Esta característica se introdujo en el Microsoft.NET Framework 2.0.

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

¿Qué es la función de un vale de autenticación de formularios?

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

El vale se cifra y firma utilizando el elemento de configuración < machineKey > del archivo Machine.config del servidor. ASP.NET 2.0 utiliza la decryptionKey y el nuevo atributo de descifrado del elemento < machineKey > para cifrar los vales de autenticación de formularios. El atributo de descifrado permite especificar el algoritmo de cifrado a utilizar. ASP.NET 1.1 y 1.0 utilice cifrado 3DES, que no es configurable. Manipulación con el valor del vale está determinado 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 batería de servidores Web, debe asegurarse de que los archivos de configuración en cada servidor comparten el mismo valor para los atributos validationKey y decryptionKey en la etiqueta < machineKey > , que se utilizan para algoritmos hash y el descifrado del vale, respectivamente. Debe hacerlo porque no puede garantizar qué servidor controlará las solicitudes sucesivas. Para obtener más información acerca del cifrado de FormsAuthenticationTicket y consideraciones de implementación de granja de servidores Web, visite el siguiente sitio Web de MSDN:Un recorrido a través de los métodos para generar manualmente las claves se puede encontrar en los siguientes artículos de Microsoft Knowledge Base:
312906 cómo crear claves utilizando Visual C# .NET para su uso en autenticación mediante formularios

313091 cómo crear claves utilizando Visual Basic .NET para su uso en autenticación mediante formularios

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

¿Cómo se relacionan expiración de la cookie y la caducidad del vale?

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

Para obtener más información acerca del método FormsAuthentication.SignOut , visite el siguiente sitio Web de MSDN:Con la autenticación de formularios sin cookies, si el explorador se cierra, se pierde el vale y se generará un nuevo vale en la siguiente solicitud.

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

La caducidad deslizante 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, caducidad a las 5:10 00:00:00 PM si el atributo timeout es 10 y el atributo slidingExpiration está establecido en TRUE. Ahora, si cualquier página Web que se explora otra vez a las 5:05 00:00:00 PM, las cookies y el tiempo de espera de vale se restablecerán a las 5:15:00: 00:00 PM.

Nota: Si se accede a la página Web antes de la mitad de las pasadas de hora de caducidad, no se restablecerá la fecha de expiración del vale. Ejemplo de primer plano, si se tiene acceso a cualquier página Web otra vez a las 5:04 00:00:00 PM, no se restablecerán las cookies y el tiempo de espera de vale.

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

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

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

<!--forms Attributes: 
name="[cookie name]" - Sets the name of the cookie used for Forms Authentication.
loginUrl="[url]" - Sets the URL to redirect client to for authentication.
protection="[All|None|Encryption|Validation]" - Sets the protection mode for data in cookie.
timeout="[minutes]" - Sets the duration of time for cookie to be valid (reset on each request).
path="/" - Sets the path for the cookie.
requireSSL="[true|false]" - Should the forms authentication cookie be sent only over SSL?
slidingExpiration="[true|false]" - Should the forms authentication cookie and ticket be reissued if they are about to expire?
-->
Para obtener más información, visite el siguiente sitio Web de MSDN:Si el vale se genera manualmente mediante la clase FormsAuthenticationTicket , el tiempo de espera puede establecerse a través del atributo Expiration . Este valor anula el valor del atributo timeout especificado en los archivos de configuración.

Para obtener más información acerca de los miembros de la clase FormsAuthenticationTicket , visite el siguiente sitio Web de MSDN:

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

Si manualmente se genera el vale de autenticación de formularios, la propiedad de tiempo de espera del vale reemplazará 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, los formularios de vale de autenticación caducará antes de que el archivo de configuración tiempo de espera de atribuyen valor y viceversa. Por ejemplo, supongamos que se establece el atributo de tiempo de espera de < forms > a 30 en el archivo Web.config y el valor de expiración del vale se establece en 20 minutos. En este caso, el vale de autenticación de formularios caducará después de 20 minutos y el usuario tendrá que iniciar sesión otra vez después de.

Vínculos relacionados

910439 solucionar problemas de autenticación de formularios

891032 solución de problemas de ASP.NET

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

308157 cómo implementar la autenticación basada en formularios en su aplicación ASP.NET mediante Visual Basic .NET

Espero que se encuentra esta información útil en aliviar parte de la confusión relacionada con la cookie y el vale de autenticación de formularios ASP.NET. Recuerde que las columnas de voz de soporte son para usted! Como siempre, no dude en enviar ideas sobre temas que desea examinarse en futuras columnas o en el Microsoft Knowledge Base utilizando la
Preguntar para el formulario.
Propiedades

Id. de artículo: 910443 - Última revisión: 17 ene. 2017 - Revisión: 1

Comentarios