2010-01-21 5 views

Répondre

4

Selon the documentation, GetUserobtient les informations de la source de données et met à jour la date de dernière activité/horodatage pour l'utilisateur de membre connecté en cours.

Page.User.Identity.Name ne fait pas cela. Il lit les informations facilement disponibles en mémoire.

2

Page.User.Identity est rempli lorsque la page passe par le pipeline. Membership.GetUser(). UserName va et récupère les informations depuis la base de données, Active Directory ou partout ailleurs où le fournisseur les prend en charge, ce qui provoque une seconde recherche.

Il est peu probable que cela change, donc j'utiliserais Page.User.Identity.

3

Page.User.Identity.Name indique l'identité de l'utilisateur actuellement connecté. Membership.GetUser() vous permet d'obtenir les informations sur l'utilisateur.

BTW, appelant getUser() sans paramètre est le même que

Membership.GetUser(Page.User.Identity.Name) 

Donc, si vous avez juste besoin nomUtilisateur, utilisez Page.User.Identity.Username et utiliser Membership.GetUser() pour obtenir plus informations sur l'utilisateur, comme l'e-mail, ou pour effectuer une action sur l'utilisateur comme changer son mot de passe.

espère que cela aidera

0

Notez qu'il est tout à fait possible d'avoir User.Identity.Name faire référence à un utilisateur qui n'existe même pas dans la base de données des membres. Ceci est l'authentification par formulaires et une abstraction générale du concept d'un User qui n'existe pas nécessairement dans la base de données des membres.

Si vous supprimez l'utilisateur actuel de la base de données d'appartenance, User.Identity.Name conservera sa valeur d'origine.

Questions connexes