C# 限制LDAP查询中返回的属性
如何限制通过System.DirectoryServices在LDAP查询中返回的属性 我一直在使用DirectorySearcher并添加要加载到DirectorySearcher.PropertiesToLoad的属性。问题是,这只是确保添加的属性包括在DirectoryEntry.properties以及一些默认列表中。是否有任何方法可以指定要返回的唯一属性C# 限制LDAP查询中返回的属性,c#,.net,active-directory,ldap,directoryservices,C#,.net,Active Directory,Ldap,Directoryservices,如何限制通过System.DirectoryServices在LDAP查询中返回的属性 我一直在使用DirectorySearcher并添加要加载到DirectorySearcher.PropertiesToLoad的属性。问题是,这只是确保添加的属性包括在DirectoryEntry.properties以及一些默认列表中。是否有任何方法可以指定要返回的唯一属性 DirectoryEntry base = new DiectoryEntry(rootPath, null, null, Auth
DirectoryEntry base = new DiectoryEntry(rootPath, null, null, AuthenticationTypes.FastBind);
DirectorySearcher groupSearcher = new DirectorySearcher(base);
groupSearcher.Filter = "(objectClass=group)";
groupSearcher.PropertiesToLoad.Add("distinguishedName");
groupSearcher.PropertiesToLoad.Add("description");
foreach (SearchResult groupSr in groupDs.FindAll())
...
在foreach循环中,当我获得groupdirectoryEntry时,我可以访问大约16个不同的属性,而不仅仅是我指定的两个(discrimitedName,description)您要限制的是
搜索结果中可用/填充的属性,您可以在foreach
循环中直接访问这些属性:
DirectoryEntry baseEntry = new DirectoryEntry(rootPath, null, null, AuthenticationTypes.FastBind);
DirectorySearcher groupSearcher = new DirectorySearcher(baseEntry);
groupSearcher.Filter = "(objectClass=group)";
groupSearcher.PropertiesToLoad.Add("distinguishedName");
groupSearcher.PropertiesToLoad.Add("description");
foreach (SearchResult groupSr in groupSearcher.FindAll())
{
if(groupSr.Properties["description"] != null && groupSr.Properties["description"].Count > 0)
{
string description = groupSr.Properties["description"][0].ToString();
}
.....
}
您不能限制实际的目录条目
-因此,如果您为每个搜索结果抓取目录条目
-您可以完全访问所有内容。但关键是,您可以定义所需的属性,并直接访问搜索结果上的,而不必返回底层的目录条目