我们如何才能可靠地获得DN
的{{1}}?
我们一直在使用SearchResult
但最近遇到了不支持此安装的安装。该客户有其他应用程序可以归结为调用Win32的SearchResult.Properties["dn"]
方法,但在.NET中似乎没有等效的ldap_get_dn
。
解决方案需要跨LDAP服务器工作,而不是特定于ActiveDirectory。
答案 0 :(得分:1)
一开始并不清楚但我们后来发现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.Path Property
http://msdn.microsoft.com/en-us/library/system.directoryservices.searchresult.path.aspx
答案 1 :(得分:0)
base object
始终是专有名称,可通过LDAP搜索结果条目(但不是搜索结果参考)提供。但是,可分辨名称不是属性。