在 LDAP 查询中使用通配符来匹配 trustParent 属性
Using wildcards in LDAP query to match trustParent property
我正在使用如下代码通过 LDAP 查询构建域树。
DirectorySearcher configSearch = new DirectorySearcher(
context.AuthContext.ConfigurationDirectoryEntry)
configSearch.Filter = string.Format("(&(netbiosname=*)(trustParent=CN={0},CN=Partitions,CN=Configuration,{1}))",
parentFolder.Name.Split('.').First(), parentFolder.GetNcName());
// Configure search properties to return
configSearch.PropertiesToLoad.Add("dnsroot");
configSearch.PropertiesToLoad.Add("ncname");
configSearch.PropertiesToLoad.Add("netbiosname");
configSearch.PropertiesToLoad.Add("trustParent");
SearchResultCollection forestPartitionList = configSearch.FindAll();
// Loop through each returned domain in the result collection
foreach (SearchResult domainPartition in forestPartitionList)
{
// Use domain information
}
这样的 LDAP 过滤器可以正常工作:
(trustParent=CN=**NETBIOSNAME**,CN=Partitions,CN=Configuration,DC=domain,DC=com)
但是,带有通配符的版本不起作用(returns 空结果):
(trustParent=*,DC=domain,DC=com)
我在无状态网络应用程序中使用查询,所以我只有父域名作为输入,我想避免额外的 LDAP 查询来获取 NetBIOS 名称或 DistinguishedName(远程 AD 域的名称,这可能属于另一个子网)。
是否有使用通配符过滤 trustParent 属性 搜索结果的提示?
如果 trustParent 属性的语法是 DistinguishedName,则无法进行通配符匹配,因为在 LDAP 中没有匹配 DistinguishedName 子字符串的标准。
我正在使用如下代码通过 LDAP 查询构建域树。
DirectorySearcher configSearch = new DirectorySearcher(
context.AuthContext.ConfigurationDirectoryEntry)
configSearch.Filter = string.Format("(&(netbiosname=*)(trustParent=CN={0},CN=Partitions,CN=Configuration,{1}))",
parentFolder.Name.Split('.').First(), parentFolder.GetNcName());
// Configure search properties to return
configSearch.PropertiesToLoad.Add("dnsroot");
configSearch.PropertiesToLoad.Add("ncname");
configSearch.PropertiesToLoad.Add("netbiosname");
configSearch.PropertiesToLoad.Add("trustParent");
SearchResultCollection forestPartitionList = configSearch.FindAll();
// Loop through each returned domain in the result collection
foreach (SearchResult domainPartition in forestPartitionList)
{
// Use domain information
}
这样的 LDAP 过滤器可以正常工作:
(trustParent=CN=**NETBIOSNAME**,CN=Partitions,CN=Configuration,DC=domain,DC=com)
但是,带有通配符的版本不起作用(returns 空结果):
(trustParent=*,DC=domain,DC=com)
我在无状态网络应用程序中使用查询,所以我只有父域名作为输入,我想避免额外的 LDAP 查询来获取 NetBIOS 名称或 DistinguishedName(远程 AD 域的名称,这可能属于另一个子网)。
是否有使用通配符过滤 trustParent 属性 搜索结果的提示?
如果 trustParent 属性的语法是 DistinguishedName,则无法进行通配符匹配,因为在 LDAP 中没有匹配 DistinguishedName 子字符串的标准。