获取OU的完全限定名称

时间:2011-04-04 20:30:33

标签: c# asp.net active-directory ldap ou

我有一个代码来获取域内的OU列表。

现在这只列出了所有的OU,并没有给出区分OU和子OU的方法。

DirectoryEntry entry = new DirectoryEntry("LDAP://" + domain);

DirectorySearcher mySearcher = new DirectorySearcher(entry);
mySearcher.Filter = ("(objectClass=organizationalUnit)");

foreach (SearchResult temp in mySearcher.FindAll())
{
   OU_DownList.Items.Add(temp.Properties["name"][0].ToString());
}

有没有办法可以获得OU的完全限定名称?

对于子OU这样的事情:

CN=Computer1,OU=Department 101,OU=Business Unit #1,DC=us,DC=xyz,DC=com

感谢任何帮助......谢谢

2 个答案:

答案 0 :(得分:5)

temp.Path应该为您提供每个OU的distinguishedName。

答案 1 :(得分:1)

使用Path中的SearchResult媒体资源,与temp.Path一样,请参阅link

  

Path属性唯一标识   Active Directory中的此条目   层次结构。这个条目总是如此   使用此路径检索。

您可以使用以下源代码枚举所有可用属性:

foreach(string propKey in temp.Properties.PropertyNames)
{
    // Display each of the values for the property identified by
    // the property name.
    foreach (object property in temp.Properties[propKey])
    {
        Console.WriteLine("{0}:{1}", propKey, property.ToString());
    }
}