/// <summary> /// Execute general search of active directory and return the results /// in the form of an ExecuteResult struct. Optional parameter to specify the /// location to search in. /// </summary> /// <param name="filterString">string, LDAP formatted filter</param> /// <param name="returnCollection">boolean, true if result will be a collection. false, if result is single item</param> /// <param name="connPrefix">Optional parameter, specified distinguished name to search within</param> /// <returns></returns> private ExecuteResult ExecuteSearch(string filterString, bool returnCollection, string connPrefix = null) { ExecuteResult execResult = new ExecuteResult(); execResult.singleResult = null; execResult.collectionResult = null; bool errFlag = false; DirectoryEntry entry; if (connPrefix == null) { entry = new DirectoryEntry(connectionPrefix); } else { entry = new DirectoryEntry("LDAP://" + connPrefix); } DirectorySearcher mySearcher = new DirectorySearcher(entry); mySearcher.Filter = filterString; if (returnCollection) { SearchResultCollection CollectionResult = null; try { CollectionResult = mySearcher.FindAll(); } catch (Exception e) { errFlag = true; //Console.Write("search error. " + e.Message); //log file for errors } execResult.collectionResult = CollectionResult; } else { SearchResult singleResult = null; try { singleResult = mySearcher.FindOne(); } catch (Exception e) { errFlag = true; //Console.Write("search error. " + e.Message); //log file for errors } execResult.singleResult = singleResult; } execResult.error = errFlag; entry.Close(); entry.Dispose(); mySearcher.Dispose(); return(execResult); }
/// <summary> /// Execute general search of active directory and return the results /// in the form of an ExecuteResult struct. Optional parameter to specify the /// location to search in. /// </summary> /// <param name="filterString">string, LDAP formatted filter</param> /// <param name="returnCollection">boolean, true if result will be a collection. false, if result is single item</param> /// <param name="connPrefix">Optional parameter, specified distinguished name to search within</param> /// <returns></returns> private ExecuteResult ExecuteSearch(string filterString, bool returnCollection, string connPrefix = null) { ExecuteResult execResult = new ExecuteResult(); execResult.singleResult = null; execResult.collectionResult = null; bool errFlag = false; DirectoryEntry entry; if (connPrefix == null) { entry = new DirectoryEntry(connectionPrefix); } else { entry = new DirectoryEntry("LDAP://" + connPrefix); } DirectorySearcher mySearcher = new DirectorySearcher(entry); mySearcher.Filter = filterString; if (returnCollection) { SearchResultCollection CollectionResult = null; try { CollectionResult = mySearcher.FindAll(); } catch (Exception e) { errFlag = true; //Console.Write("search error. " + e.Message); //log file for errors } execResult.collectionResult = CollectionResult; } else { SearchResult singleResult = null; try { singleResult = mySearcher.FindOne(); } catch (Exception e) { errFlag = true; //Console.Write("search error. " + e.Message); //log file for errors } execResult.singleResult = singleResult; } execResult.error = errFlag; entry.Close(); entry.Dispose(); mySearcher.Dispose(); return execResult; }