2010-10-21 16 views
4

J'ai un site web ASP.NET 2.0 hébergé sur Windows Server 2008 avec IIS 7. J'utilise le mode session InProc (spécifié sur le web .config). Mon client souhaite que le délai d'expiration soit de 3 heures, ce qui signifie que si le site Web est inactif, la session doit rester active pendant 3 heures. Actuellement, ce qui se passe est que si le site Web est inactif pendant 20-30 min. et si l'utilisateur essaie d'accéder à un lien, il redirige vers la page de connexion.timeout et déconnexion automatique dans asp.net 2.0 avec IIS 7 même après avoir fait tous les réglages possibles

J'ai cherché sur internet et fait tous les réglages possibles (comme suit):

  1. Dans config web, l'état de session, le temps = 180 minutes.

  2. En configuration web, authentification par formulaires, délai d'attente = 180 minutes.

  3. Dans IIS 7, Site-> Caractéristiques Affichage-> L'état de session - mode d'état de session Cadre: Proc et Cookie Réglage-> Time out = 180 minutes

  4. En IIs 7, Site-> Caractéristiques Voir -> ASP-> Services-> Session Properties-> Time out = 03:00:00 heures

  5. Dans IIS 7, Pools d'applications-> Site-> Paramètres avancés-> Modèle de processus-> Délai d'inactivité = 180 minutes.

Même après avoir fait tous ces réglages, le délai d'attente n'a pas augmenté et toujours si le site Web est inactif pendant 20-30 minutes. et l'utilisateur essaie d'accéder au lien, il redirige vers la page de connexion. Chaque fois qu'il redirige vers la page de connexion après 20-30 minutes inactif, et si je vérifie le journal des événements sur le serveur, il dit quelque chose comme (Je ne suis pas sûr si cette erreur est liée à ce particulier problème ou non): "L'authentification des formulaires a échoué pour la requête Raison: le ticket fourni a expiré"

Répondre

4

Comment votre code émet le ticket d'authentification une fois que les utilisateurs se connectent? Le documentation indique que l'attribut d'expiration remplacera tout ce que vous avez défini dans web.config - cela pourrait être le problème.

Si le ticket est généré manuellement par en utilisant la classe FormsAuthenticationTicket , le délai peut être réglé par l'attribut d'expiration. Cette valeur remplacera l'attribut de délai d'attente spécifié dans la configuration .

+0

OK dans le code (fichier .cs), lorsque l'utilisateur se connecte, je suis en train le billet comme: // Créer le ticket d'authentification FormsAuthenticationTicket authTicket = new FormsAuthenticationTicket (1, // Version txbUserName. Texte, // nom d'utilisateur DateTime.Now, // création DateTime.Now.AddMinutes (30), // Expiration false, // Persistant rôles); // Données utilisateur – pratik

+1

Le code derrière est l'endroit où vous devez également définir 180 minutes. – TheGeekYouNeed

+0

Oui je viens de le faire, laissez-moi le tester :) – pratik