web-dev-qa-db-ja.com

C#コードを使用してActive Directoryから現在のログインを取得する

C#コードを使用してWindows Active Directoryから現在のユーザーのログイン名を取得するにはどうすればよいですか?

26
Sunil

単に、

string Name = new System.Security.Principal.WindowsPrincipal(System.Security.Principal.WindowsIdentity.GetCurrent()).Identity.Name;

OR

string Name = System.Environment.UserName  

OR

string Name = Environment.GetEnvironmentVariable("USERNAME");

OR

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

作品:)

53
Ahmed Ghoneim

.NET 3.5以降を使用している場合は、次を使用できます。

// set up domain context
PrincipalContext ctx = new PrincipalContext(ContextType.Domain);

// find current user
UserPrincipal user = UserPrincipal.Current;

if(user != null)
{
   string loginName = user.SamAccountName; // or whatever you mean by "login name"
}    

新しいS.DS.AMを使用すると、ADのユーザーやグループを簡単に操作できます。

参照:

30
marc_s
System.DirectoryServices.AccountManagement.UserPrincipal.Current.Name

これも私のために働いています!ありがとう

3
Singaravelan

私は他のソリューションが提供されている「NT AUTHORITY\NETWORK SERVICE」を取得していましたが、System.Threading.Thread.CurrentPrincipal.Identity.Name.ToString()は機能していました。

1
Tel