Question Comment puis-je obtenir le nom d'utilisateur actuel dans .NET en utilisant C #?


Comment puis-je obtenir le nom d'utilisateur actuel dans .NET en utilisant C #?


460
2017-08-06 17:40


origine


Réponses:


string userName = System.Security.Principal.WindowsIdentity.GetCurrent().Name;

706
2017-08-06 17:41



Si vous êtes dans un réseau d'utilisateurs, le nom d'utilisateur sera différent:

Environment.UserName
- Will Display format : 'Username'

plutôt que

System.Security.Principal.WindowsIdentity.GetCurrent().Name
- Will Display format : 'NetworkName\Username'

Choisissez le format que vous voulez.


252
2017-12-19 15:57



Essayez la propriété: Environment.UserName.


99
2017-08-06 17:41



La documentation pour Environment.UserName semble être un peu contradictoire:

Propriété Environment.UserName

Sur la même page, il est écrit:

Obtient le nom d'utilisateur de la personne actuellement connectée au système d'exploitation Windows.

ET

affiche le nom d'utilisateur de la personne qui a démarré le thread en cours

Si vous testez Environment.UserName en utilisant RunAs, il vous donnera le nom du compte d'utilisateur RunAs, pas l'utilisateur connecté à Windows.


23
2018-01-25 09:06



J'appuie totalement les autres réponses, mais j'aimerais souligner une autre méthode qui dit

String UserName = Request.LogonUserIdentity.Name;

La méthode ci-dessus m'a renvoyé le nom d'utilisateur dans le format: DomainName \ UserName. Par exemple, EUROPE \ UserName

Ce qui est différent de:

String UserName = Environment.UserName;

Qui a affiché dans le format: Nom d'utilisateur

Et enfin:

String UserName = System.Security.Principal.WindowsIdentity.GetCurrent().Name;

qui a donné: NT AUTHORITY\IUSR (lors de l'exécution de l'application sur le serveur IIS) et DomainName\UserName (lors de l'exécution de l'application sur un serveur local).


21
2017-10-07 08:18



Utilisation:

System.Security.Principal.WindowsIdentity.GetCurrent().Name

Ce sera le nom de connexion.


21
2017-08-06 17:42



Vous pouvez également essayer d'utiliser:

Environment.UserName;

Comme ça...:

string j = "Your WindowsXP Account Name is: " + Environment.UserName;

J'espère que cela a été utile.


9
2017-08-07 17:58



J'ai essayé plusieurs combinaisons de réponses existantes, mais elles me donnaient

DefaultAppPool
IIS APPPOOL
IIS APPPOOL\DefaultAppPool

J'ai fini par utiliser

string vUserName = User.Identity.Name;

Ce qui m'a donné le nom d'utilisateur réel du domaine des utilisateurs seulement.


9
2018-05-28 16:59