private static SearchScope GetSearchScope(QueryScopeType queryScopeType) { SearchScope searchScope = SearchScope.Base; if (queryScopeType == QueryScopeType.OneLevel) { searchScope = SearchScope.OneLevel; } else if (queryScopeType == QueryScopeType.Subtree) { searchScope = SearchScope.Subtree; } return(searchScope); }
public DirectoryEntryRepository(IADOperator adOperator, string ldapPath, QueryScopeType queryScopeType) { var adOperatorInfo = adOperator.GetOperatorInfo(); string path; if (String.IsNullOrEmpty(ldapPath)) { path = String.Format(@"LDAP://{0}", adOperatorInfo.OperateDomainName); } else { path = ldapPath; } if (!String.IsNullOrEmpty(adOperatorInfo.UserLoginName) && !String.IsNullOrEmpty(adOperatorInfo.Password)) { this.DirectoryEntry = new DirectoryEntry(path, adOperatorInfo.UserLoginName, adOperatorInfo.Password); } else { this.DirectoryEntry = new DirectoryEntry(path); } this.QueryScopeType = queryScopeType; }
/// <summary> /// Find all AD objects by filter and path. /// </summary> /// <param name="adOperator">The AD operator.</param> /// <param name="filter">The filter</param> /// <param name="ldapPath">The LDAP path.</param> /// <param name="queryScopeType">The query scope type.</param> /// <returns>All AD objects.</returns> internal static List <TADObject> FindAllByFilter <TADObject>(IADOperator adOperator, IFilter filter, string ldapPath, QueryScopeType queryScopeType) { List <TADObject> adObjects; using (var directoryEntryRepository = new DirectoryEntryRepository(adOperator, ldapPath, queryScopeType)) { using (var searchResultCollection = directoryEntryRepository.GetSearchResultCollection(filter)) { var objects = (from SearchResult searchResult in searchResultCollection select GetADObject(adOperator, searchResult)).ToList(); adObjects = objects.Cast <TADObject>().ToList(); } } return(adObjects); }
/// <summary> /// Find one AD object by filter and path. /// </summary> /// <param name="adOperator">The AD operator.</param> /// <param name="filter">The filter</param> /// <param name="ldapPath">The LDAP path.</param> /// <param name="queryScopeType">The query scope type.</param> /// <returns>One AD object.</returns> internal static TADObject FindOneByFilter <TADObject>(IADOperator adOperator, IFilter filter, string ldapPath, QueryScopeType queryScopeType) where TADObject : class { TADObject adObject; using (var directoryEntryRepository = new DirectoryEntryRepository(adOperator, ldapPath, queryScopeType)) { adObject = GetADObject(adOperator, directoryEntryRepository.GetSearchResult(filter)) as TADObject; } return(adObject); }
/// <summary> /// Find all AD objects by filter. /// </summary> /// <param name="filter">The filter</param> /// <returns>All AD objects.</returns> public static List <TADObject> FindAllByFilter <TADObject>(IFilter filter, string[] propertiesToLoad = null, QueryScopeType queryScopeType = QueryScopeType.Subtree) { List <TADObject> adObjects; using (var searchResultCollection = GetSearchResultCollection(filter.BuildFilter(), propertiesToLoad, GetSearchScope(queryScopeType))) { var objects = (from SearchResult searchResult in searchResultCollection select GetActiveDirectoryObject(searchResult)).ToList(); adObjects = objects.Cast <TADObject>().ToList(); } return(adObjects); }
/// <summary> /// Find one AD object by filter. /// </summary> /// <param name="filter">The filter</param> /// <returns>One AD object.</returns> public static TADObject FindOneByFilter <TADObject>(IFilter filter, string[] propertiesToLoad = null, QueryScopeType queryScopeType = QueryScopeType.Subtree) where TADObject : ActiveDirectoryObject { TADObject adObject = null; SearchResult searchResult; using (DirectorySearcher directorySearcher = new DirectorySearcher(ClientContext.GetContext().RootDirectoryEntry, filter.BuildFilter(), propertiesToLoad, GetSearchScope(queryScopeType))) { searchResult = directorySearcher.FindOne(); if (searchResult != null) { adObject = GetActiveDirectoryObject(searchResult) as TADObject; } } return(adObject); }
/// <summary> /// Get the single AD object which is matched with the filter. /// </summary> /// <param name="adOperator">The AD operator.</param> /// <param name="filter">The root AD filter.</param> /// <param name="ldapPath">The LDAP path.</param> /// <param name="queryScopeType">The query scope type<seealso cref="QueryScopeType"/>.</param> /// <returns>The single AD object which is matched with the filter.</returns> public static ADObject SingleAndDefault(IADOperator adOperator, IFilter filter, string ldapPath, QueryScopeType queryScopeType) { return(ADObject.FindOneByFilter <ADObject>(adOperator, filter, ldapPath, queryScopeType)); }
/// <summary> /// Get all the AD objects which is matched with the filter. /// </summary> /// <param name="adOperator">The AD operator.</param> /// <param name="filter">The root AD filter.</param> /// <param name="ldapPath">The LDAP path.</param> /// <param name="queryScopeType">The query scope type<seealso cref="QueryScopeType"/>.</param> /// <returns>All the AD objects which is matched with the filter.</returns> public static IList <ADObject> List(IADOperator adOperator, IFilter filter, string ldapPath, QueryScopeType queryScopeType) { return(ADObject.FindAllByFilter <ADObject>(adOperator, filter, ldapPath, queryScopeType)); }