J'ai du code que je suis en train de parcourir concernant les temps morts de session du site Web. Dans le web.config, je suis tombé sur ce code.
<authentication mode="Forms">
<forms loginUrl="~/Auth/SignOn.aspx" timeout="40" slidingExpiration="true" />
</authentication>
<sessionState timeout="30" />
Quelqu'un sait-il si l'un prime sur l'autre et en quoi ils sont différents. Merci.
asp.net
session
web-config
Lucky Luke2
la source
la source
Réponses:
Ce sont des choses différentes. La valeur Délai d'authentification par formulaire définit la durée en minutes pendant laquelle le cookie d'authentification est défini pour être valide, ce qui signifie qu'après un
value
certain nombre de minutes, le cookie expirera et l'utilisateur ne sera plus authentifié - il sera redirigé vers la connexion page automatiquement. LaslidingExpiration=true
valeur indique essentiellement que tant que l'utilisateur fait une demande dans le délai d'expiration, il continuera à être authentifié (plus de détails ici ). Si vous définissez,slidingExpiration=false
le cookie d'authentification expirera au boutvalue
de quelques minutes, que l'utilisateur fasse une demande dans le délai d'expiration ou non.La
SessionState
valeur du délai d'expiration définit la durée pendant laquelle un fournisseur d'état de session est requis pour conserver les données en mémoire (ou tout autre magasin de sauvegarde utilisé, SQL Server, OutOfProc, etc.) pour une session particulière. Par exemple, si vous placez un objet dans Session en utilisant la valeur de votre exemple, ces données seront supprimées après 30 minutes. L'utilisateur peut encore être authentifié mais les données de la session peuvent ne plus être présentes. LaSession Timeout
valeur est toujours réinitialisée après chaque demande.la source
Ce n'est pas correct. Le délai d'expiration du cookie d'authentification ne sera réinitialisé que si la moitié du délai d'expiration est écoulé.
Voir par exemple https://support.microsoft.com/de-ch/kb/910439/en-us ou https://itworksonmymachine.wordpress.com/2008/07/17/forms-authentication-timeout-vs-session -temps libre/
la source
D'après ce que je comprends, ils sont indépendants les uns des autres. En gardant le délai d'expiration de la session inférieur ou égal au délai d'expiration de l'authentification, vous pouvez vous assurer que les variables de session spécifiques à l'utilisateur ne sont pas persistantes après l'expiration de l'authentification (si tel est votre problème, ce qui, je pense, est normal lorsque vous posez cette question. question). Bien sûr, vous devrez gérer manuellement la suppression des variables de session lors de la déconnexion.
Voici une réponse décente qui peut répondre à votre question ou au moins vous orienter dans la bonne direction:
la source
La différence est que l'un (délai d'expiration des formulaires) a à voir avec l'authentification de l'utilisateur et l'autre (délai d'expiration de la session) à la durée de stockage des données en cache sur le serveur. Ce sont donc des choses très indépendantes, donc l'une n'a pas priorité sur l'autre.
la source
Cette configuration m'envoie à la page de connexion toutes les deux minutes, ce qui semble contredire les réponses précédentes
la source
Pour quiconque tombe sur cette question, reportez-vous à cette documentation de MS - elle contient de très bons détails concernant le paramètre FormsAuthentication Timeout.
Ce document explique en détail le commentaire que fait bmode dans la réponse acceptée - à propos du cookie persistant (session vs expire)
https://docs.microsoft.com/en-us/aspnet/web-forms/overview/older-versions-security/introduction/forms-authentication-configuration-and-advanced-topics-cs#specifying-the-tickets- timeout-value
la source