web-dev-qa-db-fra.com

Délai d’authentification des formulaires vs délai de session

J'ai le code que je regarde à travers concernant les temps 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" />

Est-ce que quelqu'un sait si l'un l'emporte sur l'autre et en quoi ils sont différents? Merci.

129
Lucky Luke2

Ce sont des choses différentes. La valeur Délai d'expiration de l'authentification par formulaire définit le délai, en minutes, pendant lequel le cookie d'authentification est défini pour être valide. Autrement dit, après value nombre de minutes, le cookie expirera et l'utilisateur ne sera plus authentifié. être redirigé vers la page de connexion automatiquement-. La valeur slidingExpiration=true indique en gros qu'après chaque demande, le temporisateur est réinitialisé et tant que l'utilisateur fait une demande dans les délais impartis, il continuera à être authentifié. Si vous définissez slidingExpiration=false, le cookie d'authentification expirera après value nombre de minutes, que l'utilisateur fasse ou non une demande dans le délai imparti.

La valeur du délai d'expiration SessionState définit la durée pendant laquelle un fournisseur d'état de session doit conserver des données en mémoire (ou le 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 au bout de 30 minutes. L'utilisateur peut toujours être authentifié mais les données de la session peuvent ne plus être présentes. La valeur Session Timeout est toujours réinitialisée après chaque demande.

208
Icarus

La valeur de glissementExpiration = true indique en gros qu'après chaque demande effectuée, le temporisateur est réinitialisé et tant que l'utilisateur fait une demande dans les délais impartis, il continue à être authentifié.

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 est écoulée.

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-timeout /

19
Silvan Hofer

De 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 plus conservées après l'expiration du délai d'authentification (si cela vous concerne, ce qui, à mon avis, est la réponse normale question). Bien sûr, vous devrez gérer manuellement la disposition 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:

18
Lopsided

La différence est que l'un (délai d'expiration des formulaires) concerne l'authentification de l'utilisateur et l'autre (délai d'expiration de la session) concerne la durée de stockage des données en cache sur le serveur. Donc, ce sont des choses très indépendantes, donc l’une n’a pas préséance sur l’autre.

7
Karl Anderson
      <sessionState timeout="2" />
      <authentication mode="Forms">
          <forms name="userLogin" path="/" timeout="60" loginUrl="Login.aspx" slidingExpiration="true"/>
      </authentication>

Cette configuration m'envoie à la page de connexion toutes les deux minutes, ce qui semble contredire les réponses précédentes

2
shlasasha

Pour tous ceux qui tombent sur cette question, reportez-vous à la documentation fournie par MS. Elle contient de très bons détails concernant le paramètre Délai d'expiration de FormsAuthentication.

Cette documentation explique en détail le commentaire fait par bmode dans la réponse acceptée - à propos du cookie persistant (Session vs Expires)

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

0
Naren