195 votes

définir le délai d'expiration de la session dans web.config

J'ai essayé très fort, mais je ne trouve pas d'exemple sur la façon de définir la valeur de délai d'expiration de session pour une session in-process pour une application Web ASP.Net.

J'utilise VSTS 2008 + .Net 3.5 + C #. Voici ce que j'ai écrit moi-même pour régler le délai d'attente sur 1 minute, est-ce correct?

J'écris dans la section system.web de web.config,

 <sessionState timeout="1" mode="InProc" />
 

merci d'avance, George

345voto

Wolfwyrd Points 7142

Quelque chose comme:

 <configuration>
  <system.web>
     <sessionState timeout="20"></sessionState>
  </system.web>
</configuration>
 

devrait vous voir juste

53voto

Kirtan Points 11022

La valeur que vous définissez dans l' timeout attribut est celui de la bonne manière de définir le délai d'expiration de session de la valeur.

L' timeout attribut spécifie le nombre de minutes d'une session peut rester inactive avant d'être abandonnés. La valeur par défaut de cet attribut est de 20.

Par l'attribution d'une valeur de 1 à cet attribut, vous avez mis la session à l'abandon, en 1 minute après le repos.

Pour tester cela, créer une simple page aspx, et d'écrire ce code dans l'événement Page_Load,

Response.Write(Session.SessionID);

Ouvrez un navigateur et allez à cette page. Un id de session sera imprimé. Attendez une minute passe, puis cliquer sur "actualiser". L'id de session va changer.

Maintenant, si ma conjecture est correcte, vous voulez faire de votre les utilisateurs se déconnectent dès que la session expire. Pour ce faire, vous pouvez monter une page de connexion qui permettra de vérifier l'identification de l'utilisateur, et de créer une variable de session comme celle-ci

Session["UserId"] = 1;

Maintenant, vous aurez à effectuer un contrôle sur chaque page de cette variable comme ceci -

if(Session["UserId"] == null)
    Response.Redirect("login.aspx");

C'est un bare-bones exemple de la façon dont cela va fonctionner.

Mais, pour faire de votre qualité de production des applications sécurisées, l'utilisation des Rôles Et de l'effectif des classes fournies par ASP.NET. Ils fournissent l'authentification basée sur les Formulaires qui est beaucoup plus reliabletha la normale en fonction de la Session d'authentification que vous essayez d'utiliser.

0voto

Phu Chaai Points 1257

Utilisez ceci en web.config :

 <sessionState 
  mode="InProc"
  stateConnectionString="tcpip=127.0.0.1:42424"
  sqlConnectionString="data source=127.0.0.1;Trusted_Connection=yes"
  cookieless="false" 
  timeout="20" 
/>
 

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