¿Por qué se prolonga la vida de una cocinera después de que haya transcurrido la mitad del tiempo en un algoritmo de expiración deslizante?

1

Estoy codificando mi algoritmo de caducidad deslizante para que los tokens de portador imiten lo que hizo Microsoft en su lógica de autenticación de formularios, y leyendo su documentación que dicen (énfasis agregado)

  

Cuando SlidingExpiration se establece en true, el intervalo de tiempo durante   El cual la cookie de autenticación es válida se restablece al vencimiento.   Valor de la propiedad timeout. Esto sucede si el usuario navega después de la mitad de   el tiempo de espera ha caducado

¿Cuál es el razonamiento detrás de esperar eso en lugar de simplemente aumentar la caducidad de la cookie cada vez que un usuario navega por una página?

    
pregunta g3rv4 05.02.2015 - 16:19
fuente

1 respuesta

1

No hay ninguna razón particular, parece que hay un buen equilibrio entre actualizarlo en cada solicitud y no dejarlo demasiado tarde para que caduque antes de que se inicie la siguiente acción del usuario.

Tome dos escenarios con un vencimiento de 20 minutos.

Una visita de usuario de 9 minutos, * denota una vista de página:

012345678901234567890
*      * *

Esto tiene la ventaja de que las visitas cortas no tienen que emitir un ticket actualizado.

Una visita de usuario de 25 minutos:

01234567890123456789
*    *         *
               ^ as half the time has passed, a new ticket is issued to expire 20 minutes ahead:
               567890123456789012345
                                   *
                                   ^ new ticket....

Esto permite al usuario continuar con la navegación sin tener que iniciar sesión nuevamente para visitas más largas.

Como el servidor no conoce la navegación de los usuarios que no realizan solicitudes (vistas de página en mi ejemplo), solo actualizar el tiempo de caducidad después de la mitad de la duración parece una forma razonable de mantener vivas las sesiones.

    
respondido por el SilverlightFox 05.02.2015 - 16:34
fuente

Lea otras preguntas en las etiquetas