C# 連接 OpenLDAP 使用方法 (Anonymous 連線 / 搵 同一個 LDAP Directory Level 既 Record )

 
C# 連接 OpenLDAP 使用方法 (Anonymous 連線 / 搵 同一個 LDAP Directory Level 既 Record )
 

   Form1.cs
 
   using System.DirectoryServices;
 
   private void LDAPCheck(String HostName, String Query)
   {
 
      DirectoryEntry objEntry = new DirectoryEntry(HostName, "", "", AuthenticationTypes.Anonymous);
      DirectorySearcher objSearcher = new DirectorySearcher(objEntry, Query);
      objSearcher.PropertiesToLoad.Add("adspath");
      objSearcher.PropertiesToLoad.Add("objectclass");
      objSearcher.PropertiesToLoad.Add("sn");
      objSearcher.PropertiesToLoad.Add("ou");
      objSearcher.PropertiesToLoad.Add("cn");
 
      SearchResultCollection objSearchResultCollection = objSearcher.FindAll();
 
      DataTable dt = new DataTable();
 
      dt.Columns.Add("cn");
      dt.Columns.Add("ou");
      dt.Columns.Add("adspath");
      dt.Columns.Add("sn");
      dt.Columns.Add("objectclass");
 
      String ad = "";
      String objectclass = "";
      String sn = "";
      String ou = "";
      String cn = "";
 
      if (objSearchResultCollection != null)
      {
 
         foreach (SearchResult iresult in objSearchResultCollection)
         {
 
            ad = iresult.Path;
            foreach (string PropertyName in iresult.Properties.PropertyNames)
            {
               foreach (Object key in iresult.GetDirectoryEntry().Properties[PropertyName])
               {
                  if (PropertyName.ToLower() == "objectclass") objectclass = objectclass.Trim() + " " + key;
                  else if (PropertyName.ToLower() == "sn") sn += key;
                  else if (PropertyName.ToLower() == "ou") ou += key;
                  else if (PropertyName.ToLower() == "cn") cn += key;
               }
            }
 
            dt.Rows.Add(cn, ou, ad, sn, objectclass);
 
            ad = "";
            objectclass = "";
            sn = "";
            ou = "";
            cn = "";
 
         }
      }
 
      dataGridView1.DataSource = dt;
      dataGridView1.AutoResizeColumn(0);
      dataGridView1.AutoResizeColumn(1);
      dataGridView1.AutoResizeColumn(2);
      dataGridView1.AutoResizeColumn(3);
      dataGridView1.AutoResizeColumn(4);
 
   }
 


 
   LDAPCheck("LDAP://192.168.1.100/ou=youtube,dc=deisler,dc=biz", "cn=*");