2010-02-04 6 views
40

Exemple de code MSDN Description: L'exemple de code suivant utilise la propriété IsAuthenticated pour déterminer si la demande en cours a été authentifiée. Si elle n'a pas été authentifiée, la demande est redirigée vers une autre page où les utilisateurs peuvent entrer leurs informations d'identification dans l'application Web. C'est une technique courante utilisée dans la page par défaut pour une application.Comment fonctionne Request.IsAuthenticated?

C'est grand, mais aucun détail ou quoi que ce soit ...

Quel est le vérifier exactement? Comment puis-je le définir à vrai?

Allez plus loin: où trouverais-je une documentation plus détaillée à ce sujet?

Répondre

52

Grâce à Google, j'ai trouvé une version mise en cache du post @keyboardP dans his answer. Je poste cette réponse/poste ici comme référence pour les autres puisque le lien d'origine est cassé (2012-12-06).

Original question que la réponse se réfère ci-dessous pour:

J'ai une forme application qui me donne FITS. J'ai remarqué que, dans un emplacement où la propriété IsAuthenticated avait été True, il était maintenant false et le ne fonctionnait pas comme prévu. Je me demande si j'ai un paramètre qui est invalide ??

Quelqu'un peut-il me dire ce qui définit la propriété IsAuthenticated True - ce que CONSTITUE vous connecter

Réponse de Daniel Kent.

Request.IsAuthenticated est non seulement pour les formes authentciation - il est valable quel que soit le type d'authentification utilisé (Windows, Passport, Forms ou notre propre schéma personnalisé)

HttpRequest.IsAuthenticated sera vrai lorsque l'utilisation r rendant la demande a été authentifiée. Essentiellement, cette propriété fournit les mêmes informations que . Au début d'une demande, Context.User.Idenity contient un avec un nom d'utilisateur nul.La propriété IsAuthenticated pour cet objet va renvoyer false alors Request.IsAuthenticated sera false. Quand un module d'authentification gère l'événement Application_AuthenticateRequest et authentifie l'utilisateur succčs il remplace le GenericIdentity dans Context.User.Identity avec un nouvel objet IIdentity qui renverra true de sa propriété IsAuthenticated. Request.IsAuthenticated renverra alors true.

Dans le cas de l'authentification des formulaires, le module d'authentification de formulaires utilise le ticket d'authentification crypté contenu dans le cookie d'authentification pour authentifier l'utilisateur. Une fois cela fait, il remplace le GenericIdentity dans Context.User.Identity avec un FormsIdentity objet que renvoie True à partir de sa propriété IsAuthenticated.

Ainsi, la mise en IsAuthenticated à true est en fait différente de l'exploitation forestière. Comme dit Jeff, la connexion à l'authentification des formulaires se produit lorsque le ticket d'authentification est généré et envoyé au client comme un cookie. (RedirectFromLoginPage ou SetAuthCookie) Ce dont nous parlons avec IsAuthenticated est l'authentification qui se produit avec chaque demande de page. La connexion se produit lorsqu'un utilisateur entre ses informations d'identification et qu'un ticket lui est attribué, l'authentification se produit à chaque requête.

+0

voici un lien vers la réponse en cache de google: https://webcache.googleusercontent.com/search?q=cache:t4JNfp8peQIJ:https://forums.asp.net/t/1416811.aspx%3FQuestion%2Babout%2Bmethods% 2Bto% 2Bdetect% 2Bif% 2Ba% 2Buser% 2Bis% 2Blogged% 2Bin – tylerlindell

8

Il y a un article très détaillé par Daniel Kent here. (Snippet)

Request.IsAuthenticated est non seulement pour les formes authentciation - il est valable peu importe quel type d'authentification est utilisé (Windows, passeport, formulaires ou notre propre système sur mesure)

HttpRequest.IsAuthenticated sera true lorsque l'utilisateur ayant effectué la demande a été authentifié. Essentiellement, cette propriété fournit les mêmes informations que Context.User.Identity.IsAuthenticated.

+4

Le lien est malheureusement cassé. J'ai trouvé une version mise en cache par Google et posté son contenu dans une réponse différente pour un meilleur formatage. – Oliver