C# 无法获取主要组角色,即;“域用户”;用于c中的ldap用户#

C# 无法获取主要组角色,即;“域用户”;用于c中的ldap用户#,c#,active-directory,ldap,C#,Active Directory,Ldap,我有以下代码。它应该向ldap服务器检查用户具有哪些角色,并显示所有角色,删除ldap服务器上不存在的任何角色。现在它不显示“域用户”组,因为它是主组。但我也需要它来显示域用户角色。我尝试将(primaryGroupID=513)包含在过滤器中,但无法作为“directorySearcher.FindOne();”使用将primaryGroupID添加到筛选器后返回null。我相信您也已经完成了研究。我不相信有一种简单的方法可以访问设置为主要用户的组,或者访问与域用户属于同一组的组的一部分。我在

我有以下代码。它应该向ldap服务器检查用户具有哪些角色,并显示所有角色,删除ldap服务器上不存在的任何角色。现在它不显示“域用户”组,因为它是主组。但我也需要它来显示域用户角色。我尝试将(primaryGroupID=513)包含在过滤器中,但无法作为“directorySearcher.FindOne();”使用将primaryGroupID添加到筛选器后返回null。

我相信您也已经完成了研究。我不相信有一种简单的方法可以访问设置为主要用户的组,或者访问与域用户属于同一组的组的一部分。我在广告中的帐户有125个组,但如果我通过powershell或DirectoryEntry进行查询,则只显示70个组

我知道下面的代码可以工作并拉取所有组,不管它是什么类型的组

    PrincipalContext ctx = new PrincipalContext(ContextType.Domain);
    UserPrincipal user = (UserPrincipal)Principal.FindByIdentity(ctx, userID);
    PrincipalSearchResult<Principal> userGroups = user.GetAuthorizationGroups();
PrincipalContext ctx=新PrincipalContext(ContextType.Domain);
UserPrincipal user=(UserPrincipal)Principal.FindByIdentity(ctx,userID);
PrincipalSearchResult userGroups=user.GetAuthorizationGroups();

如果首先获得PrimaryGroupID,则可以访问默认组

我们可以使用它

还有