如何使用 C# 代码从 Windows Active Directory 获取当前用户的登录名?
问问题
64042 次
5 回答
58
简单地,
string Name = new System.Security.Principal.WindowsPrincipal(System.Security.Principal.WindowsIdentity.GetCurrent()).Identity.Name;
或者
string Name = System.Environment.UserName
或者
string Name = Environment.GetEnvironmentVariable("USERNAME");
或者
string Name = System.Security.Principal.WindowsIdentity.GetCurrent().Name;
作品:)
于 2012-06-04T07:16:09.227 回答
32
如果您使用的是 .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 中与用户和组一起玩变得非常容易!
参考:
于 2012-06-04T07:17:10.797 回答
3
System.DirectoryServices.AccountManagement.UserPrincipal.Current.Name
这也为我工作!谢谢
于 2015-10-01T05:43:04.240 回答
2
我正在使用提供的其他解决方案获得“NT AUTHORITY\NETWORK SERVICE”,但 System.Threading.Thread.CurrentPrincipal.Identity.Name.ToString() 对我有用。
于 2018-11-21T08:53:04.407 回答
0
我认为这对我来说非常适合!
<h5 class="mb-0 text-gray-800">Welcome, <span style="text-transform:capitalize">@User.Identity.Name.Replace("AD-GROUP-NAME\\", "").Replace(".", " ")</span></h5>
于 2019-11-13T15:27:16.433 回答