Comment obtenir les utilisateurs actuels de windows identité
Le site est en cours d'exécution sur mon serveur IIS local 6.1. Je Voudrais ajouter quelques fonctionnalités à extraire des informations à partir de notre ère. Mon ANNONCE code fonctionne sur de nombreux autres projets et sur mon serveur de dev. Voici mes tentatives d'écriture du nom d'utilisateur:
Response.Write("1. " + this.Request.LogonUserIdentity.Name);
Response.Write("2. " + Request.ServerVariables["Auth_User"]);
Response.Write("3. " + WindowsIdentity.GetCurrent().Name.ToString());
Les résultats que j'obtiens sont:
- NT AUTHORITY\IUSR
- administrateur
- NT AUTHORITY\NETWORK SERVICE
Comment puis-je obtenir le nom d'utilisateur windows comme ourdomain/nom d'utilisateur
Grâce
OriginalL'auteur Phil | 2011-03-08
Vous devez vous connecter pour publier un commentaire.
Cet extrait montre comment
LogonUserIdentity
est définie (à l'aide d'un réflecteur)Comme vous pouvez le voir, cela a été changé pour IIS 7.
Je crois que vous êtes en utilisant l'Authentification Windows + usurpation d'identité donc j'irais avec le dernier (
WindowsIdentity.GetCurrent()
) dont je suis sûr, c'est la demande d'identité en cours d'exécution.OriginalL'auteur Aliostad
Il y a deux types d'utilisateur windows ici - le premier est votre utilisateur de l'application et la deuxième est d'utilisateur (ou d'un compte windows) en vertu de laquelle votre ASP.NET application (pool d'applications IIS point de vue) est en cours d'exécution.
WindowsIdentity.GetCurrent
généralement de retour cette référence.À obtenir de véritables fenêtres de l'utilisateur que l'utilisation de l'application, vous devez appliquer l'authentification. Pour ce faire, vous pouvez activer l'authentification intégrée (authentification windows) dans IIS pour le dit site web. Également de modifier votre ASP.NET configuration pour utiliser l'authentification windows. Maintenant, vous pouvez utiliser
HttpContext.Current.User.Identity
pour obtenir le réel de l'utilisateur.OriginalL'auteur VinayC
HttpContext.Current.User.Identity
peut être utiliser pour vous ici.De même
System.Threading.Thread.CurrentPrincipal
pourrait aider.Mais le cas peut-être que vous avez réellement à définir une identité instance que l'utilisateur se connecte (mais pas nécessairement de mettre en œuvre
IPrincipal
et l'autour des mécanismes, plutôt en utilisant le haut-WindowsIdentity
mise en œuvre).Je ne suis pas à 100% sur ce, l'Authentification Windows pourrait définir automatiquement pour vous de récupérer.
Aussi, découvrez ce lien à partir de MSDN qui décrit la base des opérations de l'utilisateur,
OriginalL'auteur Grant Thomas
Tout d'abord, assurez-vous que le site web est à l'intérieur de la zone intranet (par exemple, vient de http://servername/ plutôt que http://www.servername.com/), ou vous avez besoin d'ajouter votre nom de domaine complet pour IEs Sites de Confiance des paramètres de sécurité.
Deuxièmement, si vous n'êtes pas à l'aide de l'intranet de la zone, assurez-vous que IE est d'envoyer les informations d'identification - Outils -> Options Internet ->- > personnaliser le Niveau -> l'Authentification de l'Utilisateur -> Connexion -> Connexion Automatique avec le nom d'utilisateur Et le Mot de passe
OriginalL'auteur Moo
Est la connexion de l'utilisateur sur le site en utilisant leur ANNONCE de domaine/nom d'utilisateur, si donc saisir le nom d'utilisateur/domaine à ce point?
Si pas, vous ne serez pas en mesure de l'obtenir, si un random site web pourrait saisir le nom de domaine/nom d'utilisateur actuel de la connexion des utilisateurs à ce que serait un énorme problème de sécurité ne serait-il pas?
OriginalL'auteur James Gaunt