title: Active Directory Display all properties in a table
body: <p>I am trying to achieve an LDAP query to gather all properties we have about our users without specifying the properties before hand, I would like to display this in a table so used the below code. This works if I uncomment the search.PropertiesToLoad.Add("cn"); line and will display any other properties I add in the same way but not when I do a full search for all properties.</p>
  
  <pre><code>DirectoryEntry myLdapConnection = createDirectoryEntry();
  DirectorySearcher search = new DirectorySearcher(myLdapConnection);
  
  search.CacheResults = true;
  //search.PropertiesToLoad.Add("cn");
  
  SearchResultCollection allResults = search.FindAll();
  DataTable resultsTable = new DataTable("Results");
  
  //add columns for each property in results
  foreach (string colName in allResults.PropertiesLoaded)
      resultsTable.Columns.Add(colName, colName.GetType());
  
  //loop to add records to DataTable
  foreach (SearchResult result in allResults)
  {
      int tmp = result.Properties.Count;
      DataRow row = resultsTable.NewRow();
      foreach (string columnName in search.PropertiesToLoad)
      {
          if (columnName.Equals("lastlogon"))
          {
              if (result.Properties.Contains(columnName))
                  row[columnName] = ConvertDate(result.Properties[columnName].ToString());
              else
                  row[columnName] = "";
          }
          else
          {
              if (result.Properties.Contains(columnName))
                  row[columnName] = result.Properties[columnName][0].ToString();
              else
                  row[columnName] = "";
          }
      }
      resultsTable.Rows.Add(row);
  }
  
  gridResults.DataSource = resultsTable;
  </code></pre>
  
  <p>The problem seems to be with </p>
  
  <pre><code>foreach (string colName in allResults.PropertiesLoaded)
      resultsTable.Columns.Add(colName, colName.GetType());
  </code></pre>
  
  <p>I expected this to loop all properties when no PropertiesToLoad had been specified but it doesn't is their a way to achieve what I want to.</p>
  
  <p>I know I need a few try catches and other bits in the code as of yet, it's a rough draft.</p>