C# 获取具有嵌套组的AD中的用户组

C# 获取具有嵌套组的AD中的用户组,c#,active-directory,adgroup,C#,Active Directory,Adgroup,我不知道“嵌套”是否是我所需要的词,但以下是解释: 我有一个用户,“John”。“约翰”是“A”组的成员。“B”组将“A”组作为成员 因此,及物动词“John”也应该是“B”组的成员 当我检索John的组时,我只得到“A”,而不是“B”,这样做: DirectorySearcher searcher = new DirectorySearcher(); DirectoryEntry rootEntry = new DirectoryEntry(_ldap, _loginName, _passwo

我不知道“嵌套”是否是我所需要的词,但以下是解释:

我有一个用户,“John”。“约翰”是“A”组的成员。“B”组将“A”组作为成员

因此,及物动词“John”也应该是“B”组的成员

当我检索John的组时,我只得到“A”,而不是“B”,这样做:

DirectorySearcher searcher = new DirectorySearcher();
DirectoryEntry rootEntry = new DirectoryEntry(_ldap, _loginName, _password, AuthenticationTypes.ReadonlyServer);

searcher.SearchRoot = rootEntry;
searcher.SearchScope = SearchScope.Subtree;
searcher.Filter = "(&(sAMAccountName=" + filter.Split('\\')[1] + ")(objectClass=user))";
searcher.PropertiesToLoad.Add("memberOf");
searcher.PropertiesToLoad.Add("displayname");

SearchResult sr = searcher.FindOne();
我怎样才能做到这一点

谢谢大家!

我最后使用了用户的“tokenGroups”属性,它似乎返回了用户所在的所有组,甚至是他所属的组

这是我的密码:

DirectorySearcher searcher = new DirectorySearcher();
DirectoryEntry rootEntry = new DirectoryEntry(_ldap, _loginName, _password, AuthenticationTypes.ReadonlyServer);

searcher.SearchRoot = rootEntry;
searcher.SearchScope = SearchScope.Subtree;
searcher.Filter = "(&(sAMAccountName=" + filter.Split('\\')[1] + ")(objectClass=user))";
searcher.PropertiesToLoad.Add("memberOf");
searcher.PropertiesToLoad.Add("displayname");

SearchResult sr = searcher.FindOne();
DirectoryEntry userDirectoryEntry = result.GetDirectoryEntry();
userDirectoryEntry.RefreshCache(new string[] { "tokenGroups" });

foreach (byte[] byteEntry in userDirectoryEntry.Properties["tokenGroups"])
{
   if (CompareByteArrays(byteEntry, objectSid))
   {
         isMember = true;
         break;
   }
}
它是和链接的混合,其中objectSid是我按名称查找的组的objectSid


非常感谢你的帮助

查看之前发布的
Nicole
这不是同一件事,因为我从用户开始,我得到了它的直接组,我需要知道这些组中是否有任何一个同时是另一个组的成员..这是您的筛选器中的一个案例输入错误/胖指吗=
“(&(sAmAccountName
不确定它是否重要,但我认为它应该是
sAmAccountName
也可以添加
&&(objectClass=groups))
嘿,用PrincipalContext检查一下,我不确定我之前所做的是否有用