コード例 #1
0
        // Token: 0x06000DCD RID: 3533 RVA: 0x00029468 File Offset: 0x00027668
        internal override IEnumerable <T> GetObjects <T>(ADObjectId rootId, IDirectorySession session, IDirectorySession subTreeSession, OptionalIdentityData optionalData, out LocalizedString?notFoundReason)
        {
            notFoundReason = null;
            EnumerableWrapper <T> wrapper = EnumerableWrapper <T> .GetWrapper(base.GetObjects <T>(rootId, session, subTreeSession, optionalData, out notFoundReason));

            if (!wrapper.HasElements())
            {
                wrapper = EnumerableWrapper <T> .GetWrapper(this.TryGetObjectsFromDC <T>(rootId, subTreeSession, optionalData));
            }
            if (!wrapper.HasElements() && !Guid.Empty.Equals(this.guid) && typeof(T).IsAssignableFrom(typeof(ADGroup)))
            {
                ADObjectId containerId;
                if (session.SessionSettings.CurrentOrganizationId.Equals(OrganizationId.ForestWideOrgId))
                {
                    containerId = session.GetConfigurationNamingContext();
                }
                else
                {
                    containerId = session.SessionSettings.CurrentOrganizationId.ConfigurationUnit;
                }
                bool    useGlobalCatalog = session.UseGlobalCatalog;
                bool    useConfigNC      = session.UseConfigNC;
                ADGroup adgroup          = null;
                try
                {
                    session.UseGlobalCatalog = true;
                    session.UseConfigNC      = false;
                    adgroup = session.ResolveWellKnownGuid <ADGroup>(this.guid, containerId);
                }
                finally
                {
                    session.UseGlobalCatalog = useGlobalCatalog;
                    session.UseConfigNC      = useConfigNC;
                }
                if (adgroup != null)
                {
                    wrapper = EnumerableWrapper <T> .GetWrapper(new List <ADGroup>(1)
                    {
                        adgroup
                    }.Cast <T>());
                }
            }
            return(wrapper);
        }