开发者

How can I read the Active Directory schema programmatically

I did some programming for reading the data from Active Directory such as user account or Orgnization info and so on. The code below is like something what I did.

DirectoryEntry entry = new DirectoryEntry(
    "LDAP://CN=Users,DC=domain,DC=com",
    null,
    null,
    AuthenticationTypes.Secure
    );

DirectorySearcher search = new DirectorySearcher(entry);
开发者_StackOverflow中文版
using (SearchResultCollection src = search.FindAll())
{
    foreach (SearchResult result in src)
    {
        Console.WriteLine(result.Properties["name"][0] + " : " + 
                          result.Properties["department"][0]);
    }
}

The problem is how can I know what properties that target objects have then I can use them to filter the data before get it all.

Any ideas?


If you have a DirectoryEntry, you can inspect its .SchemaEntry:

DirectoryEntry entry = new DirectoryEntry("LDAP://......");

DirectoryEntry schema = entry.SchemaEntry;

This should - if you have the necessary permissions - give you access to the properties defined in the schema - things like MandatoryProperties or OptionalProperties:

foreach (var prop in schema.Properties.PropertyNames)
{
   string propName = prop.ToString();
   var propValue = schema.Properties[propName].Value;
}

Does that help you get started??

You might also want to have a look at BeaverTail - my C# open-source LDAP browser.

How can I read the Active Directory schema programmatically


(source: mvps.org)

It will allow you to inspect any LDAP node and see all its properties.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜