Comment obtenir de l'actuel de l'utilisateur qui accède à un ASP.NET application?
Pour obtenir le courant de l'utilisateur connecté au système que j'utilise ce code:
string opl = System.Security.Principal.WindowsIdentity.GetCurrent().Name.ToString();
Je travail sur un ASP.NET application où j'ai besoin de cette information. J'ai donc mis mon application sur un serveur et j'ai essayé le code ci-dessus, et j'obtiens un "Service Réseau" dans la chaîne de la bpo. J'ai besoin de savoir le courant de l'utilisateur de l'ordinateur qui accède à mon ASP.NET application.
Vous devez vous connecter pour publier un commentaire.
Si vous êtes à l'aide d'adhésion que vous pouvez faire:
Membership.GetUser()
Votre code est de retour le compte Windows qui est attribué à ASP.NET.
La réponse rapide est
User = System.Web.HttpContext.Current.User
Assurer votre site web.config est la suivante élément d'authentification.
Lecture: Recette: l'Activation de l'Authentification Windows au sein d'un Intranet ASP.NET application Web
System.Web.HttpContext.Current.User.Identity.Name
À l'aide de
System.Web.HttpContext.Current.User.Identity.Name
devrait fonctionner.Veuillez consulter le Site IIS paramètres sur le serveur qui héberge votre site de la manière suivante:
Aller dans IIS → Sites → Votre Site → Authentification
Maintenant vérifier que l'Accès Anonyme est Désactivé & l'Authentification Windows est Activé.
Maintenant
System.Web.HttpContext.Current.User.Identity.Name
doit retourner quelque chose comme ceci:domain\username
La meilleure pratique consiste à vérifier la
Identity.IsAuthenticated
Propriété en premier et ensuite obtenir lausr.UserName
comme ceci:Vous pouvez simplement utiliser une propriété de la page. Et la chose intéressante est que vous pouvez accéder à cette propriété n'importe où dans votre code.
Utiliser ceci:
Ne pas regarder trop loin.
Si vous développez avec ASP.NET MVC, il vous suffit de l'utilisateur comme un propriété de la
Controller
de la classe. Ainsi dans le cas où vous vous perdez dans certains modèles, la recherche de l'utilisateur actuel, essayez de prendre du recul et à obtenir l'information pertinente dans le contrôleur.Dans le contrôleur, il suffit d'utiliser:
avec
userId
comme une chaîne de caractères.Le consensus général la réponse ci-dessus semble avoir un problème de compatibilité avec le soutien de la SCRO. Afin d'utiliser le HttpContext.Actuel.De l'utilisateur.L'identité.Nom de l'attribut, vous devez désactiver l'authentification anonyme afin de forcer l'authentification Windows pour fournir à l'utilisateur authentifié de l'information. Malheureusement, je crois que vous devez avoir l'authentification anonyme est activée afin de traiter de la préparation du vol des OPTIONS de demande de la SCRO scénario.
Vous pouvez contourner ce problème en laissant l'authentification anonyme est activée et l'utilisation de la HttpContext.Actuel.Demande.LogonUserIdentity attribut de la place. Ce sera le retour de l'utilisateur authentifié de l'information (en supposant que vous êtes dans un intranet), même avec l'authentification anonyme est activée. L'attribut renvoie une WindowsUser structure de données et les deux sont définis dans le Système.Web espace de noms
J'ai couru dans le même numéro.
C'est ce qui a fonctionné pour moi:
Configuration des Propriétés de l'Authentification Windows dans IIS
NTLM doit être le premier.
Plus Web.config modifications, assurez-vous que vous avez déjà ou si elles n'existent pas:
Voir ci-dessous une pièce de théâtre explication pour les deux nœuds et
Différence entre <système.web> et <le système.serveur>?
Et, bien sûr , vous obtenez le nom d'utilisateur par