175 votes

Délai de session dans ASP.NET

J'exécute une application ASP.NET 2.0 dans IIS 6.0. Je souhaite que le délai d'expiration de la session soit de 60 minutes au lieu des 20 minutes par défaut. J'ai fait ce qui suit

  1. défini dans web.config
  2. Définir le délai d'expiration de la session à 60 minutes dans les propriétés du gestionnaire IIS / du site Web / les paramètres de configuration ASP.NET
  3. Définissez le délai d'inactivité sur 60 minutes dans les propriétés / performances du pool d'applications.

J'ai toujours un délai de session de 20 minutes. Y a-t-il autre chose que je dois faire?

293voto

HectorMac Points 3961

Êtes-vous à l'aide de l'authentification par Formulaires?

Les formulaires d'authentification utilise sa propre valeur de délai d'attente (30 min. par défaut). Une authentification par formulaires délai d'attente va envoyer l'utilisateur vers la page de connexion à la session reste active. Cela peut ressembler le comportement de votre application donne lors de la session expire, le rendant facile de confondre l'un avec l'autre.

<system.web>
    <authentication mode="Forms">
          <forms timeout="50"/>
    </authentication>

    <sessionState timeout="60"  />
</system.web>

Réglage de l'formes délai d'attente pour quelque chose de moins que le délai d'expiration de session peut donner à l'utilisateur une fenêtre dans laquelle vous reconnecter sans perdre les données de la session.

49voto

Dmitris Points 1445

Je ne sais pas pour web.config ou IIS. Mais je crois que du code C # vous pouvez le faire comme

 Session.Timeout = 60;
 

43voto

Utilisez le bloc de code suivant dans votre site web.fichier de configuration. Ici, session par défaut, le temps est de 80 minutes.

<system.web>
 <sessionState mode="InProc" cookieless="false" timeout="80" />
</system.web>

Utilisez le lien suivant pour le Délai d'expiration de Session avec popup message d'alerte.

Délai D'Expiration De Session Exemple

Pour info:Les exemples ci-dessus est fait avec devexpress contrôle popup si vous avez besoin de personnaliser/remplacer devexpress contrôle popup avec la normale de contrôle contextuel. Si votre utilisation de devexpress pas besoin de le personnaliser

9voto

Cory Points 37551

Avez-vous quelque chose dans la machine.config qui pourrait prendre effet? Réglage du délai d'expiration de session dans le site web.config doit l'emporter sur tous les paramètres dans IIS ou à la machine.config, cependant, si vous avez un site web.fichier de config quelque part dans un sous-dossier dans votre application, que l'établissement prendra la place de celui à la racine de votre application.

Aussi, si je me souviens bien, le délai d'attente dans IIS affecte uniquement .les pages asp, non .aspx. Êtes-vous sûr que votre code de session dans le site web.la config est correcte? Il devrait ressembler à quelque chose comme:

<sessionState
    mode="InProc"
    stateConnectionString="tcpip=127.0.0.1:42424"
    stateNetworkTimeout="60"
    sqlConnectionString="data source=127.0.0.1;Integrated Security=SSPI"
    cookieless="false"
    timeout="60"
/>

8voto

davidsleeps Points 4437

C'est tout ce que vous devez faire...

Êtes-vous sûr que, après 20 minutes, la raison pour laquelle la session est perdu, c'est d'être inactif...

Il existe de nombreuses raisons pour lesquelles la session peut être effacé. Vous pouvez activer la journalisation des événements pour IIS et pouvez ensuite utiliser l'observateur d'événements pour voir les raisons pour lesquelles la session a été effacé...vous trouverez peut-être que c'est pour d'autres raisons, peut-être?

Essayez ces liens pour la journalisation des événements http://technet.microsoft.com/en-us/library/cc786887.aspx http://technet.microsoft.com/en-us/library/cc784734.aspx

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X