Se connecter avec Microsoft
S'identifier ou créer un compte.
Bonjour,
Sélectionnez un autre compte.
Vous avez plusieurs comptes
Choisissez le compte avec lequel vous voulez vous connecter.

ASP.NET colonne De prise en charge de la voix

Introduction

Bienvenue dans la colonne Microsoft ASP.NET Support Voice ! Je suis Nilay B. Shah avec l’équipe de support ASP.NET développeur. Je travaille avec ASP.NET soutien depuis plus d’un an et demi. L’authentification par formulaire est vraiment une fonctionnalité d’authentification intéressante. Cet article traite de certains problèmes que les utilisateurs ont trouvés confus avec l’authentification par formulaire, tels que la relation entre le ticket d’authentification par formulaire et le cookie d’authentification par formulaire et leurs paramètres appropriés. Je tiens à remercier Jerry Orman, responsable technique de l’équipe de support ASP.NET, pour son incroyable aide !

Personnes s’interrogent parfois sur les « tickets » et les « cookies » d’authentification par formulaire, car ils sont étroitement liés. J’ai rencontré des questions telles que : Quelqu’un peut-il expliquer la différence entre l’expiration du cookie et l’expiration du ticket ? Lorsque le cookie expire, l’utilisateur est redirigé vers la page d’ouverture de session. Que se passe-t-il lorsque le ticket expire ? Le cookie va-t-il également expirer ? Qu’est-ce que SlidingUpdate met réellement à jour ?

Je vais me concentrer sur ces deux aspects de l’authentification par formulaire dans cet article pour répondre aux questions suivantes :

  • Qu’est-ce que le ticket d’authentification par formulaire et le cookie d’authentification par formulaire ? Comment sont-ils liés ?

  • Quel est le rôle d’un ticket dans l’authentification par formulaire ?

  • Comment l’expiration des cookies et l’expiration des tickets sont-elles liées ?

  • Comment fonctionne l’expiration glissante dans le contexte du ticket d’authentification par formulaire et du cookie d’authentification par formulaire ?

  • Où la propriété de délai d’attente du cookie d’authentification par formulaire et du ticket d’authentification par formulaire peut-elle être définie ?

  • Scénario de problème : l’authentification par formulaire peut expirer avant la valeur d’attribut de délai d’expiration définie dans le fichier de configuration

Qu’est-ce que le ticket d’authentification par formulaire et le cookie d’authentification par formulaire ? Comment sont-ils liés ?

Le cookie d’authentification par formulaire n’est rien d’autre que le conteneur du ticket d’authentification par formulaire. Le ticket est passé comme valeur du cookie d’authentification par formulaire à chaque demande et est utilisé par l’authentification par formulaire, sur le serveur, pour identifier un utilisateur authentifié.

Toutefois, si nous choisissons d’utiliser l’authentification par formulaire sans cookie, le ticket est passé dans l’URL dans un format chiffré. L’authentification par formulaire sans cookie est utilisée, car parfois les navigateurs clients bloquent les cookies. Cette fonctionnalité est introduite dans Microsoft .NET Framework 2.0.

Pour plus d’informations, visitez le site Web MSDN (Microsoft Developer Network) suivant :

http://msdn2.microsoft.com/en-us/library/system.web.configuration.formsauthenticationconfiguration.cookieless.aspx

Quel est le rôle d’un ticket dans l’authentification par formulaire ?

Le ticket d’authentification par formulaire est utilisé pour indiquer à l’application ASP.NET qui vous êtes. Ainsi, le ticket est un bloc de construction de la sécurité de l’authentification par formulaire.

Le ticket est chiffré et signé à l’aide de l’élément de configuration <machineKey> du fichier Machine.config du serveur. ASP.NET 2.0 utilise decryptionKey et le nouvel attribut de déchiffrement de l’élément machineKey> <pour chiffrer les tickets d’authentification par formulaire. L’attribut de déchiffrement vous permet de spécifier l’algorithme de chiffrement à utiliser. ASP.NET 1.1 et 1.0 utilisent le chiffrement 3DES, qui n’est pas configurable. La falsification de la valeur du ticket est déterminée par un échec de déchiffrement du ticket sur le serveur. Par conséquent, l’utilisateur est redirigé vers la page d’ouverture de session.


Si l’application est déployée dans une batterie de serveurs Web, vous devez vous assurer que les fichiers de configuration sur chaque serveur partagent la même valeur pour les attributs validationKey et decryptionKey dans la balise <machineKey>, qui sont utilisés respectivement pour le hachage et le déchiffrement du ticket. Vous devez le faire, car vous ne pouvez pas garantir quel serveur gérera les requêtes successives. Pour plus d’informations sur le chiffrement FormsAuthenticationTicket et les considérations relatives au déploiement de la batterie de serveurs Web, visitez le site web MSDN suivant :

http://msdn2.microsoft.com/en-us/library/ms998288.aspx

Les tickets d’authentification par formulaire peuvent être générés manuellement à l’aide de la classe FormsAuthenticationTicket. Pour plus d’informations, reportez-vous au site web MSDN à l’adresse suivante :

http://msdn2.microsoft.com/en-us/library/system.web.security.formsauthenticationticket.aspx

Comment l’expiration des cookies et l’expiration des tickets sont-elles liées ?

En cas de cookie non persistant, si le ticket a expiré, le cookie expirera également et l’utilisateur sera redirigé vers la page d’ouverture de session. De l’autre côté, si le ticket est marqué comme persistant, où le cookie est stocké sur la zone du client, les navigateurs peuvent utiliser le même cookie d’authentification pour se connecter au site Web à tout moment. Toutefois, nous pouvons utiliser la méthode FormsAuthentication.SignOut pour supprimer explicitement les cookies persistants ou non persistants.

Pour plus d’informations sur la méthode FormsAuthentication.SignOut, visitez le site web MSDN suivant :

http://msdn2.microsoft.com/en-us/library/system.web.security.formsauthentication.signout.aspxAvec l’authentification par formulaire sans cookie, si le navigateur est fermé, le ticket est perdu et un nouveau ticket est généré lors de la requête suivante.

Comment fonctionne l’expiration glissante dans le contexte du ticket d’authentification par formulaire et du cookie d’authentification par formulaire ?

L’expiration glissante fonctionne exactement de la même façon !

Prenons un exemple : si la page de connexion est accessible à 17 :00 00 :00 :00 PM, elle doit expirer à 17 :10 00 :00 :00 PM si l’attribut de délai d’expiration est 10 et que l’attribut slidingExpiration a la valeur TRUE. Maintenant, si une page Web est à nouveau parcourue à 17 :05 00 :00 :00 PM, les cookies et le délai d’expiration du ticket sont réinitialisés à 5 :15 00 :00 :00 PM.

Remarque Si la page Web est accessible avant la moitié du délai d’expiration, l’heure d’expiration du ticket n’est pas réinitialisée. Par exemple, si une page Web est à nouveau accessible à 17 :04 00 :00 :00 PM, les cookies et le délai d’expiration du ticket ne sont pas réinitialisés.

Pour plus d’informations, visitez le site web MSDN suivant :

http://msdn2.microsoft.com/en-us/library/1d3t3c61(vs.71).aspx

Où la valeur de délai d’attente du cookie d’authentification par formulaire et du ticket d’authentification par formulaire peut-elle être définie ?

Le seul paramètre que vous pouvez définir est dans le fichier Web.config ou le fichier Machine.config, dans la balise <forms>. Cette modification détermine le délai d’attente de l’authentification par formulaire dans le contexte d’un ticket ou d’un cookie, sauf si le ticket est généré manuellement.


<!-- forms Attributs :
name="[cookie name] " : définit le nom du cookie utilisé pour l’authentification par formulaire.
loginUrl="[url] " : définit l’URL vers laquelle rediriger le client pour l’authentification.
protection="[All|Aucun|Chiffrement|Validation] » : définit le mode de protection des données dans le cookie.
timeout="[minutes] " : définit la durée pendant laquelle le cookie doit être valide (réinitialisé à chaque requête).
path="/ » : définit le chemin du cookie.
requireSSL="[true|false] » : le cookie d’authentification par formulaire doit-il être envoyé uniquement via SSL ?
slidingExpiration="[true|false] " : le cookie d’authentification par formulaire et le ticket doivent-ils être réédités s’ils sont sur le point d’expirer ?
--> Pour plus d’informations, visitez le site web MSDN suivant :

http://msdn2.microsoft.com/en-us/library/1d3t3c61.aspxSi le ticket est généré manuellement à l’aide de la classe FormsAuthenticationTicket, le délai d’attente peut être défini via l’attribut Expiration. Cette valeur remplace la valeur d’attribut de délai d’expiration spécifiée dans les fichiers de configuration.

Pour plus d’informations sur les membres FormsAuthenticationTicket, visitez le site web MSDN suivant :

http://msdn2.microsoft.com/en-us/library/system.web.security.formsauthenticationticket_members.aspx

Scénario de problème : l’authentification par formulaire peut expirer avant la valeur d’attribut de délai d’expiration définie dans le fichier de configuration

Si le ticket d’authentification par formulaire est généré manuellement, la propriété de délai d’attente du ticket remplace la valeur définie dans le fichier de configuration. Par conséquent, si cette valeur est inférieure à la valeur du fichier de configuration, le ticket d’authentification par formulaire expire avant la valeur de l’attribut de délai d’expiration du fichier de configuration et inversement. Par exemple, supposons que les formulaires <>attribut de délai d’expiration sont définis sur 30 dans le fichier Web.config et que la valeur Expiration du ticket est définie sur 20 minutes. Dans ce cas, le ticket d’authentification par formulaire expirera après 20 minutes et l’utilisateur devra se reconnecter après cela.

Liens connexes

910439 Résoudre les problèmes d’authentification par formulaire
 

301240 Comment implémenter l’authentification basée sur les formulaires dans votre application ASP.NET à l’aide de C# .NET
 

J’espère que vous avez trouvé ces informations utiles pour atténuer une partie de la confusion impliquée avec ASP.NET ticket d’authentification par formulaire et cookie. N’oubliez pas que les colonnes Support Voice sont faites pour vous.

Besoin d’aide ?

Vous voulez plus d’options ?

Explorez les avantages de l’abonnement, parcourez les cours de formation, découvrez comment sécuriser votre appareil, etc.

Les communautés vous permettent de poser des questions et d'y répondre, de donner vos commentaires et de bénéficier de l'avis d'experts aux connaissances approfondies.

Ces informations vous ont-elles été utiles ?

Dans quelle mesure êtes-vous satisfait(e) de la qualité de la langue ?
Qu’est-ce qui a affecté votre expérience ?
En cliquant sur Envoyer, vos commentaires seront utilisés pour améliorer les produits et services de Microsoft. Votre administrateur informatique sera en mesure de collecter ces données. Déclaration de confidentialité.

Nous vous remercions de vos commentaires.

×