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でGoogleの助けを借りて見つけました;-) アクティブディレクトリ:ユーザーがメンバーであるグループを取得します

于 2013-01-04T15:16:49.957 に答える