Csharp/CSharp Tutorial/Directory Services/Search — различия между версиями

Материал из .Net Framework эксперт
Перейти к: навигация, поиск
м (1 версия)
 
(нет различий)

Текущая версия на 15:20, 26 мая 2010

Search the directories

<source lang="csharp">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);
   }
 }

}</source>

Simple Search

<source lang="csharp">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);
        }
     } 
  }

}</source>