Le délai d'expiration de la session ASP.Net Inproc est-il réinitialisé si l'accès à SessionID est activé?

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

  •  05-07-2019
  •  | 
  •  

Question

J'ai lu ici qu'une session inproc asp.net est réinitialisée son délai d'attente est dépassé à chaque accès (lecture ou écriture). Ma question est la suivante: si le délai d'attente est également réinitialisé si je ne lis que l'identifiant de session?

Exemple: le délai d'expiration de la session est défini sur 20 min. Après 15 min d'inactivité, je charge une page et lis le Session.SessionID. La session existera-t-elle encore après 10 minutes supplémentaires?

Et encore une question: est-ce que cela importe si la page est chargée directement ou accède via AJAX?

Était-ce utile?

La solution

Il me semble que vous mélangez deux choses différentes: La lecture d'une valeur à partir de l'état de la session (en code) diffère de l'attachement d'une instance de SessionState à la demande actuelle.

Sauf erreur de ma part, le délai d'attente n'est pas actualisé à chaque fois que vous accédez à un objet Session (encore une fois, en code), il est actualisé à chaque nouvelle demande. Cela se produit car l'élément SessionState est lui-même ajouté au cache (et la stratégie d'expiration est définie)

Donc, pour répondre à votre question: le délai d'attente ne sera pas réinitialisé.

Pour en savoir plus sur l'exemple que vous avez donné: le délai d'attente sera réinitialisé sur le chargement de la page, plutôt que lorsque vous lisez le code de session dans le code.

Autres conseils

L'accès à SessionID n'affecte pas le délai d'expiration de la session. Si vous jetez un œil à Reflector, la propriété SessionID (implémentée dans HttpSessionStateContainer) se présente comme suit:

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

Qui ne touche pas les éléments stockés sous-jacents.

De plus, à ce niveau, l’origine de la demande importe peu (ajax / normal).

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top