C#.NET Comment définir le temps de session à 6 heures avec l'authentification de formulaires?
Dans mon application j'utilise l'Authentification par Formulaires et sessions. Comment puis-je prendre soin que l'utilisateur est déconnecté après une période de 6 heures?
Dans mon web.config j'ai mis les sessions de temps à 360 minutes. Mais après une période de 10 minutes d'inactivité, j'ai à vous connecter à nouveau.
J'ai aussi mis mes formulaires d'authentification délai de 360 minutes. Qu'est-ce que je fais de mal?
Vous devez vous connecter pour publier un commentaire.
Il y a d'autres valeurs de délai d'attente, qui affecteront la séance le temps. L'un d'eux qui me vient à l'esprit est le Processus de travail de Délai d'attente(qui est définie à partir de IIS). Processus de travail par défaut de temps de 20 minutes, donc si il n'y a pas d'activité de votre site de 20 minutes, le processus de travail prendra fin et l'origine de votre session à la fin si vous êtes à l'aide de session en mode InProc. Afin d'obtenir des Processus de travail de la valeur de délai d'expiration de 360 minutes, c'est ce dont vous avez besoin en tant que bien.
essayer ce réglage:
couple de choses à vérifier aussi:
si votre FormsAuthenticationTicket est créé avec une baisse de cookie valeur de délai d'expiration, qui pourrait remplacer
si le pool d'applications "arrêter les processus de travail" de l'intervalle est plus faible, ce qui permettrait de rétablir l'état antérieur
Au lieu de définir un délai d'expiration de session, vous pouvez mettre en place un mécanisme pour maintenir la session en vie, par exemple: actualiser la page ou faire un appel ajax etc.
Vous ajouter à cela en mettant en œuvre un maximum de temps de connexion, qui peut être vérifiée etc
Vous avez besoin d'ajuster délai et slidingExpiration:
Des Instructions étape par étape
Configurer l'arrêt des Processus de travail Page pour un Seul Pool d'Applications
1.Ouvrez le Gestionnaire des services IIS.
2.Sélectionnez les Pools d'Applications dans le volet Connexions, sélectionnez un pool d'applications dans le Pool d'Applications volet, puis cliquez sur Paramètres Avancés... dans le volet Actions.
3.Dans la boîte de dialogue Paramètres Avancés, sous Modèle de Processus, le cas échéant, définir le délai d'Inactivité de la valeur par défaut de 20 minutes pour une période de temps différente.
4.Cliquez sur OK.
Êtes-vous à l'aide de InProc Sessions? (C'est la valeur par défaut sur ASP.net autant que je sache) Dans ce cas, vérifiez si votre Pool d'Applications recycle, comme cela tuera toutes les sessions. Je n'ai pas de IIS pour vérifier, mais je crois qu'il est configuré pour arrêter une Application de la Piscine s'il est inactif pendant un certain temps - si c'est votre Serveur de développement, peut-être que vous avez été inactif trop longtemps, de sorte que le pool d'applications recycle et votre InProc Séances sont tués?
Je ne suis pas sûr de savoir comment il est facile à mettre en œuvre rapidement stateserver ou sqlserver au lieu de inproc, mais ici, c'est la Page MSDN sur l'État de Session.