4

可能重复:
如何在 Active Directory 中获取用户的组?(c#, asp.net)

有没有办法使用命名空间获取当前登录的用户System.DirectoryServices.AccountManagement?我一直在使用以下内容:

    Dim wi As System.Security.Principal.WindowsIdentity = System.Security.Principal.WindowsIdentity.GetCurrent()

    Dim fullName As String = wi.Name.ToString

    Dim loggedOnUser = fullName.Substring(fullName.IndexOf("\") + 1)

    Console.WriteLine("The currently logged on user is {0}", loggedOnUser)

但是我想要更多关于当前用户的信息,比如他们所属的纯文本组名,并且想知道AccountManagement命名空间是否提供了这个。

使用它只会返回我无法理解的数字字符串:

For Each item As IdentityReference In wi.Groups
    Console.WriteLine(item.ToString())
Next
4

1 回答 1

5

你在寻找类似的东西吗?

using (PrincipalContext context = new PrincipalContext(ContextType.Domain))
{
    UserPrincipal user = UserPrincipal.FindByIdentity(context, IdentityType.SamAccountName, "login");
    foreach (var group in user.GetGroups())
    {
        Console.WriteLine(group.Name);
    }
}

编辑:在stackoverflow的谷歌帮助下找到它;-) 活动目录:获取用户所在的组

于 2013-01-04T15:16:49.957 回答