Ejemplo n.º 1
0
        internal ExchangeConfigurationUnit GetConfigurationUnit(string orgName)
        {
            if (string.IsNullOrEmpty(orgName))
            {
                throw new ArgumentException("OrgName must contain a non-empty value", "orgName");
            }
            ExchangeConfigurationUnit exchangeConfigurationUnit = null;

            try
            {
                ADSessionSettings           adsessionSettings          = ADSessionSettings.FromTenantCUName(orgName);
                ITenantConfigurationSession tenantConfigurationSession = DirectorySessionFactory.Default.CreateTenantConfigurationSession(ConsistencyMode.PartiallyConsistent, adsessionSettings, 866, "GetConfigurationUnit", "f:\\15.00.1497\\sources\\dev\\Configuration\\src\\ObjectModel\\BaseTasks\\ADIdParameter.cs");
                adsessionSettings.TenantConsistencyMode = TenantConsistencyMode.IncludeRetiredTenants;
                exchangeConfigurationUnit = tenantConfigurationSession.GetExchangeConfigurationUnitByName(orgName);
            }
            catch (CannotResolveTenantNameException)
            {
            }
            SmtpDomain smtpDomain = null;

            if (exchangeConfigurationUnit == null && SmtpDomain.TryParse(orgName, out smtpDomain))
            {
                try
                {
                    ADSessionSettings           sessionSettings            = ADSessionSettings.FromTenantAcceptedDomain(orgName);
                    ITenantConfigurationSession tenantConfigurationSession = DirectorySessionFactory.Default.CreateTenantConfigurationSession(ConsistencyMode.PartiallyConsistent, sessionSettings, 890, "GetConfigurationUnit", "f:\\15.00.1497\\sources\\dev\\Configuration\\src\\ObjectModel\\BaseTasks\\ADIdParameter.cs");
                    exchangeConfigurationUnit = tenantConfigurationSession.GetExchangeConfigurationUnitByNameOrAcceptedDomain(orgName);
                }
                catch (CannotResolveTenantNameException)
                {
                }
            }
            Guid externalDirectoryOrganizationId;

            if (exchangeConfigurationUnit == null && GuidHelper.TryParseGuid(orgName, out externalDirectoryOrganizationId))
            {
                try
                {
                    PartitionId                 partitionIdByExternalDirectoryOrganizationId = ADAccountPartitionLocator.GetPartitionIdByExternalDirectoryOrganizationId(externalDirectoryOrganizationId);
                    ADSessionSettings           sessionSettings2           = ADSessionSettings.FromAllTenantsPartitionId(partitionIdByExternalDirectoryOrganizationId);
                    ITenantConfigurationSession tenantConfigurationSession = DirectorySessionFactory.Default.CreateTenantConfigurationSession(ConsistencyMode.PartiallyConsistent, sessionSettings2, 911, "GetConfigurationUnit", "f:\\15.00.1497\\sources\\dev\\Configuration\\src\\ObjectModel\\BaseTasks\\ADIdParameter.cs");
                    QueryFilter                 filter = new ComparisonFilter(ComparisonOperator.Equal, ExchangeConfigurationUnitSchema.ExternalDirectoryOrganizationId, externalDirectoryOrganizationId.ToString());
                    ExchangeConfigurationUnit[] array  = tenantConfigurationSession.Find <ExchangeConfigurationUnit>(ADSession.GetConfigurationUnitsRoot(partitionIdByExternalDirectoryOrganizationId.ForestFQDN), QueryScope.SubTree, filter, null, 0);
                    if (array.Length == 1)
                    {
                        exchangeConfigurationUnit = array[0];
                    }
                }
                catch (CannotResolveExternalDirectoryOrganizationIdException)
                {
                }
            }
            return(exchangeConfigurationUnit);
        }
Ejemplo n.º 2
0
 private IRecipientSession GetRecipientSessionForMonitoringMailbox()
 {
     if (Datacenter.GetExchangeSku() == Datacenter.ExchangeSku.ExchangeDatacenter)
     {
         if (this.monitoringTenantRecipientSession == null)
         {
             ADSessionSettings sessionSettings = ADSessionSettings.FromTenantCUName(MailboxTaskHelper.GetMonitoringTenantName("E15"));
             this.monitoringTenantRecipientSession = DirectorySessionFactory.Default.CreateTenantRecipientSession(true, ConsistencyMode.IgnoreInvalid, sessionSettings, 540, "GetRecipientSessionForMonitoringMailbox", "f:\\15.00.1497\\sources\\dev\\Management\\src\\Management\\ContentIndex\\TestSearch.cs");
         }
         return(this.monitoringTenantRecipientSession);
     }
     return(base.RootOrgGlobalCatalogSession);
 }
        // Token: 0x06000033 RID: 51 RVA: 0x000034F8 File Offset: 0x000016F8
        internal static Uri GetRedirectUrlForTenantSite(string organization, string redirectTemplate, Uri originalUrl, ExEventLog eventLogger)
        {
            if (organization == null)
            {
                return(null);
            }
            ADSessionSettings sessionSettings;

            try
            {
                Guid externalDirectoryOrganizationId;
                sessionSettings = (Guid.TryParse(organization, out externalDirectoryOrganizationId) ? ADSessionSettings.FromExternalDirectoryOrganizationId(externalDirectoryOrganizationId) : ADSessionSettings.FromTenantCUName(organization));
            }
            catch (CannotResolveTenantNameException)
            {
                return(null);
            }
            catch (CannotResolveExternalDirectoryOrganizationIdException)
            {
                return(null);
            }
            ITenantConfigurationSession session = DirectorySessionFactory.Default.CreateTenantConfigurationSession(ConsistencyMode.PartiallyConsistent, sessionSettings, 180, "GetRedirectUrlForTenantSite", "f:\\15.00.1497\\sources\\dev\\Configuration\\src\\RedirectionModule\\RedirectionHelper.cs");
            ExchangeConfigurationUnit   exchangeConfigurationUnit = RedirectionHelper.ResolveConfigurationUnitByName(organization, session);

            if (exchangeConfigurationUnit == null || exchangeConfigurationUnit.ManagementSiteLink == null)
            {
                return(null);
            }
            ADSite     localSite  = LocalSiteCache.LocalSite;
            ADObjectId adobjectId = ADObjectIdResolutionHelper.ResolveDN(exchangeConfigurationUnit.ManagementSiteLink);

            Logger.LogEvent(eventLogger, TaskEventLogConstants.Tuple_LiveIdRedirection_UsingManagementSiteLink, organization, new object[]
            {
                organization,
                exchangeConfigurationUnit.AdminDisplayVersion,
                exchangeConfigurationUnit.ManagementSiteLink
            });
            if (adobjectId.Equals(localSite.Id))
            {
                return(null);
            }
            foreach (ADObjectId adobjectId2 in localSite.ResponsibleForSites)
            {
                if (adobjectId2.Equals(adobjectId))
                {
                    Logger.LogEvent(eventLogger, TaskEventLogConstants.Tuple_LiveIdRedirection_TargetSitePresentOnResponsibleForSite, organization, new object[]
                    {
                        organization,
                        adobjectId,
                        adobjectId2
                    });
                    return(null);
                }
            }
            return(RedirectionHelper.GetRedirectUrlForTenantSite(adobjectId, redirectTemplate, originalUrl));
        }