Ejemplo n.º 1
0
        public IEnumerable <ExtendedUserPrincipal> GetUsersEntries(ActiveDirectoryServer adServer)
        {
            logger.Info(new String('=', 50));
            if (string.IsNullOrWhiteSpace(adServer.Domain))
            {
                logger.Info("Domain value is null/empty, using process domain...");
                adServer.UseMachineDomain();
            }

            logger.Info("Domain: " + adServer.Domain);

            if (!string.IsNullOrWhiteSpace(adServer.ContextContainer))
            {
                logger.Info("Context Container: " + adServer.ContextContainer);
            }
            else
            {
                logger.Info("Context Container: None Provided");
            }

            logger.Info("Initializing PrincipalContext...");
            using (PrincipalContext context = obtainContext(adServer))
            {
                logger.Info("Initializing PrincipalSearcher...");
                using (var searcher = new PrincipalSearcher(new ExtendedUserPrincipal(context)))
                {
                    logger.Info("Beginning UserPrincipal iteration...");
                    foreach (ExtendedUserPrincipal userEntry in searcher.FindAll())
                    {
                        yield return(userEntry);
                    }
                }
            }
        }