private T GetObject <T>(string ldapBind) { using (DirectoryEntry entry = new DirectoryEntry(ldapBind)) { using (DirectorySearcher searcher = new DirectorySearcher(entry)) { searcher.PropertiesToLoad.AddRange(metadataResolver.GetPropertiesToLoad <T>()); return(ActiveDirectoryEntityMapper.MapSearchResult <T>(searcher.FindOne())); } } }
public List <T> Search <T>(NamingContext namingContext, ActiveDirectoryMetadata metadata) { List <T> list = new List <T>(); string searchFilter = string.Format("(objectClass={0})", metadataResolver.GetSchemaClass <T>()); using (DirectoryEntry entry = new DirectoryEntry(GetLdapConnectionString(namingContext, metadata), metadata.Username, metadata.Password)) { using (DirectorySearcher searcher = new DirectorySearcher(entry)) { searcher.Filter = searchFilter; var propertiesToLoad = metadataResolver.GetPropertiesToLoad <T>(); searcher.PropertiesToLoad.AddRange(propertiesToLoad); foreach (SearchResult result in searcher.FindAll()) { list.Add(ActiveDirectoryEntityMapper.MapSearchResult <T>(result)); } } } return(list); }