Invalidación de sesión HTTP
Las sesiones HTTP se invalidan llamando al método de invalidación en el objeto de sesión o especificando un intervalo de tiempo específico utilizando la propiedad MaxInactiveInterval.
Las sesiones que se invalidan explícitamente por el código de aplicación se invalidan inmediatamente. Las sesiones no invalidadas por el código de aplicación las invalida el gestor de sesiones. La invalidación de sesiones se produce independientemente de la configuración de persistencia de sesión.
Una sesión es un candidato para la invalidación si no se ha accedido a ella durante un periodo, especificado por el valor de MaxInactiveInterval, que tiene una duración mayor que el tiempo de espera de sesión especificado. El gestor de sesiones tiene una hebra de proceso de invalidación que se ejecuta cada X segundos para invalidar las sesiones que son idóneas para la invalidación.
El gestor de sesiones utiliza una fórmula para determinar el valor de X, especificado por la propiedad ReaperInterval. El valor de X se calcula basándose en el valor de MaxInactiveInterval que se especifica en el gestor de sesiones.
Por ejemplo, para un intervalo inactivo máximo de menos de 15 minutos, el valor ReaperInterval es aproximadamente de 60 a 90 segundos. Para un intervalo inactivo máximo de más de 15 minutos, el valor de ReaperInterval es de 300 a 360 segundos aproximadamente.
Una sesión se invalida cuando se excede el valor de MaxInactiveInterval y pasa el valor de ReaperInterval. Cuando una sesión es idónea para la invalidación, la hebra de invalidación se debe ejecutar para la sesión que se debe invalidar. Por consiguiente, es posible que no se invalide una sesión durante la suma del valor de MaxInactiveInterval y del valor de ReaperInterval en segundos.
Una sesión que ha excedido el valor de MaxInactiveInterval pero aún no ha sido eliminado por la hebra de invalidación sigue estando disponible para utilizarse. Si se solicita esa sesión, ésta se devuelve al cliente.
Puede especificar si la sesión se invalida inmediatamente o tras un intervalo de tiempo especificado. Para la invalidación inmediata, la aplicación debe llamar al método de invalidación. Para invalidar una sesión a una hora específica, puede establecer la propiedad personalizada de contenedor web ReaperInterval en segundos para especificar la frecuencia de la hebra de invalidación.