Tengo un código que estoy revisando con respecto a los tiempos de espera de sesión del sitio web. En web.config me encontré con este código.
<authentication mode="Forms">
<forms loginUrl="~/Auth/SignOn.aspx" timeout="40" slidingExpiration="true" />
</authentication>
<sessionState timeout="30" />
¿Alguien sabe si uno tiene un precedente sobre el otro y en qué se diferencian? Gracias.
asp.net
session
web-config
Lucky Luke2
fuente
fuente
Respuestas:
Son cosas diferentes. El valor de Tiempo de espera de autenticación de formularios establece la cantidad de tiempo en minutos que la cookie de autenticación se establece como válida, lo que significa que después de
value
varios minutos, la cookie caducará y el usuario ya no se autenticará; se los redirigirá al inicio de sesión página automáticamente. ElslidingExpiration=true
valor básicamente dice que mientras el usuario haga una solicitud dentro del valor de tiempo de espera, continuará siendo autenticado (más detalles aquí ). Si configuraslidingExpiration=false
la autenticación, la cookie caducará después devalue
varios minutos, independientemente de si el usuario realiza una solicitud dentro del valor de tiempo de espera o no.El
SessionState
valor de tiempo de espera establece la cantidad de tiempo que se requiere un proveedor de estado de sesión para mantener los datos en la memoria (o cualquier almacén de respaldo que se esté utilizando, SQL Server, OutOfProc, etc.) para una sesión en particular. Por ejemplo, si coloca un objeto en la sesión utilizando el valor de su ejemplo, estos datos se eliminarán después de 30 minutos. El usuario aún puede estar autenticado, pero los datos en la sesión ya no pueden estar presentes. ElSession Timeout
valor siempre se restablece después de cada solicitud.fuente
Esto no es correcto. El tiempo de espera de la cookie de autenticación solo se restablecerá si ha transcurrido la mitad del tiempo de espera.
Ver por ejemplo https://support.microsoft.com/de-ch/kb/910439/en-us o https://itworksonmymachine.wordpress.com/2008/07/17/forms-authentication-timeout-vs-session -se acabó el tiempo/
fuente
Por lo que entiendo, son independientes entre sí. Al mantener el tiempo de espera de la sesión menor o igual al tiempo de espera de la autenticación, puede asegurarse de que las variables de sesión específicas del usuario no persistan después de que la autenticación haya agotado el tiempo de espera (si eso es lo que le preocupa, lo que creo que es normal al preguntar esto) pregunta). Por supuesto, tendrá que manejar manualmente la eliminación de las variables de sesión al cerrar sesión.
Aquí hay una respuesta decente que puede responder a su pregunta o al menos señalarle en la dirección correcta:
fuente
La diferencia es que uno (Tiempo de espera de formularios) tiene que ver con la autenticación del usuario y el otro (Tiempo de espera de sesión) tiene que ver con cuánto tiempo se almacenan los datos almacenados en caché en el servidor. Por lo tanto, son cosas muy independientes, por lo que una no tiene prioridad sobre la otra.
fuente
Esta configuración me envía a la página de inicio de sesión cada dos minutos, lo que parece controlar las respuestas anteriores.
fuente
Para cualquiera que se encuentre con esta pregunta, consulte esta documentación de MS: tiene muy buenos detalles sobre la configuración del tiempo de espera de autenticación de formularios.
Este documento explica en detalle sobre el comentario que bmode está haciendo en la respuesta aceptada, sobre la cookie persistente (sesión frente a caducidad)
https://docs.microsoft.com/en-us/aspnet/web-forms/overview/older-versions-security/introduction/forms-authentication-configuration-and-advanced-topics-cs#specifying-the-tickets- valor de tiempo de espera
fuente