如何在.net中为DirectorySearcher's SearchResult获取DN

本文关键字:SearchResult 获取 DN net 中为 DirectorySearcher | 更新日期: 2023-09-27 18:18:09

如何可靠地得到SearchResultDN ?

我们一直在使用SearchResult.Properties["dn"],但最近遇到了一个不支持这个的安装。这位客户有其他的应用程序,归结为调用Win32的ldap_get_dn方法,但在。net中似乎没有相应的SearchResult

该解决方案需要跨LDAP服务器工作,而不是特定于activedirectory。

如何在.net中为DirectorySearcher's SearchResult获取DN

一开始不清楚,但我们后来发现SearchResult.Path属性包含DN,可以对其进行解析。到目前为止,这在我们遇到的所有服务器上都是一致的。

SearchResult result;
...
string userDn = result.Path;
// typical Path is
// LDAP://my.ldap.server.com:39/CN=a,CN=b,OU=c
// we want to grab the part after the third '/'
int i = userDn.IndexOf('/', 7);
if (i >= 0 && userDn.Length > i + 1)
{
    userDn = userDn.Substring(i + 1);
}

SearchResult。路径属性

http://msdn.microsoft.com/en-us/library/system.directoryservices.searchresult.path.aspx

base object始终是一个专有名称,可通过LDAP搜索结果条目(但不是搜索结果引用)获得。但是,区别名不是属性。