¿Se reinicia el tiempo de espera de la sesión de ASP.Net Inproc si se accede al SessionID?

StackOverflow https://stackoverflow.com/questions/625782

  •  05-07-2019
  •  | 
  •  

Pregunta

Leí aquí que se restablece una sesión de inproc asp.net es tiempo de espera cada vez que se accede (leer o escribir). Mi pregunta es si el tiempo de espera también se restablece si solo leo el ID de sesión.

Ejemplo: el tiempo de espera de la sesión se establece en 20 min. Después de 15 min. De inactividad cargo una página y leo el Session.SessionID. ¿Seguirá existiendo la sesión después de 10 minutos más?

Y una pregunta más: ¿Importa si la página se carga directamente o se accede a través de AJAX?

¿Fue útil?

Solución

Me parece que estás mezclando dos cosas diferentes: la lectura de un valor desde el estado de la sesión (en código) difiere de adjuntar una instancia de SessionState a la solicitud actual.

A menos que esté muy equivocado, el tiempo de espera no se actualiza cada vez que accede a un objeto Session (nuevamente, en el código), sino que se actualiza cuando se atiende una nueva solicitud. Esto sucede porque el elemento SessionState se agrega a la memoria caché (y se establece la política de caducidad)

Entonces, para responder a tu pregunta: el tiempo de espera no se restablecerá.

Para profundizar en el ejemplo que dio: el tiempo de espera se restablecerá en la carga de la página, en lugar de cuando lea el SessionID en el código.

Otros consejos

El acceso a SessionID no afecta el tiempo de espera de la sesión. Si echas un vistazo con Reflector, la propiedad SessionID (implementada en HttpSessionStateContainer) tiene este aspecto:

public string SessionID
{
    get
    {
        if (this._id == null)
        {
            this._id = this._stateModule.DelayedGetSessionId();
        }
        return this._id;
    }
}

Que no toca los elementos almacenados subyacentes.

Además, a ese nivel no importa de dónde vino la solicitud (ajax / normal).

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top