Материал из .Net Framework эксперт
Search the directories
using System;
using System.DirectoryServices;
public class MainClass {
static void Main(string[] args) {
try
{
DirectoryEntry oRoot = new DirectoryEntry("LDAP://RootDSE");
string searchOU = (string)oRoot.Properties["defaultnamingcontext"].Value;
DirectoryEntry de = new DirectoryEntry("LDAP://CN=Users," + searchOU);
Console.WriteLine(oRoot.Name);
oRoot.Close();
DirectorySearcher search = new DirectorySearcher(de);
search.Filter = "(CN=Administrator)";
search.PropertiesToLoad.Add("distinguishedName");
SearchResultCollection results = search.FindAll();
string strRet="Not Found";
foreach(SearchResult result in results)
{
DirectoryEntry data = result.GetDirectoryEntry();
strRet = (string)data.Properties["distinguishedName"].Value;
Console.WriteLine(strRet);
data.Close();
}
de.Close();
results.Dispose();
}catch(Exception e){
Console.WriteLine( e.Message);
}
}
}
Simple Search
using System;
using System.DirectoryServices;
class MainClass
{
public static void Main()
{
DirectoryEntry root = new DirectoryEntry(
"LDAP://192.168.1.100/DC=ispnet1,DC=net",
"cn=Administrator, dc=ispnet1, dc=net", "password",
AuthenticationTypes.ServerBind);
DirectorySearcher searcher = new DirectorySearcher(root);
searcher.Filter = "(&(objectClass=person)(sn=Name))";
searcher.PropertiesToLoad.Add("cn");
searcher.PropertiesToLoad.Add("Number");
SearchResultCollection results = searcher.FindAll();
foreach(SearchResult result in results)
{
string searchpath = result.Path;
Console.WriteLine("path: {0}", searchpath);
ResultPropertyCollection rpc = result.Properties;
foreach(string property in rpc.PropertyNames)
{
foreach(object value in rpc[property])
Console.WriteLine(" property = {0} value = {1}", property, value);
}
}
}
}