コード例 #1
0
        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);
        }
コード例 #2
0
        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;
        }
コード例 #3
0
        /// <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);
        }
コード例 #4
0
        /// <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);
        }
コード例 #5
0
        /// <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);
        }
コード例 #6
0
        /// <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);
        }
コード例 #7
0
 /// <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));
 }
コード例 #8
0
 /// <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));
 }