// Token: 0x060005AF RID: 1455 RVA: 0x0001FCBC File Offset: 0x0001DEBC
        private void RemovePreferredDC(string fqdn)
        {
            Fqdn value = new Fqdn(fqdn);

            if (!this.serverPerDomain.ContainsValue(value))
            {
                return;
            }
            lock (this.syncRoot)
            {
                ADObjectId adobjectId = null;
                foreach (KeyValuePair <ADObjectId, Fqdn> keyValuePair in this.serverPerDomain)
                {
                    if (string.Equals(keyValuePair.Value, fqdn, StringComparison.OrdinalIgnoreCase))
                    {
                        adobjectId = keyValuePair.Key;
                        break;
                    }
                }
                if (adobjectId != null)
                {
                    Dictionary <ADObjectId, Fqdn> dictionary = new Dictionary <ADObjectId, Fqdn>(this.serverPerDomain);
                    dictionary.Remove(adobjectId);
                    this.serverPerDomain       = dictionary;
                    this.cachedPreferredDCList = new MultiValuedProperty <Fqdn>(this.serverPerDomain.Values);
                }
            }
        }
        // Token: 0x060005AE RID: 1454 RVA: 0x0001FBF4 File Offset: 0x0001DDF4
        protected void InternalAddPreferredDC(ADServerInfo serverInfo)
        {
            if (serverInfo == null)
            {
                throw new ArgumentNullException("serverInfo");
            }
            if (string.IsNullOrEmpty(serverInfo.WritableNC))
            {
                throw new ArgumentException("serverInfo.WritableNC should not be null or empty");
            }
            ADObjectId key = new ADObjectId(serverInfo.WritableNC);

            if (this.serverPerDomain.ContainsKey(key))
            {
                return;
            }
            Fqdn value = new Fqdn(serverInfo.Fqdn);

            lock (this.syncRoot)
            {
                if (!this.serverPerDomain.ContainsKey(key))
                {
                    this.serverPerDomain = new Dictionary <ADObjectId, Fqdn>(this.serverPerDomain)
                    {
                        {
                            key,
                            value
                        }
                    };
                    this.cachedPreferredDCList = new MultiValuedProperty <Fqdn>(this.serverPerDomain.Values);
                }
            }
        }
Esempio n. 3
0
        // Token: 0x06001673 RID: 5747 RVA: 0x00054EB4 File Offset: 0x000530B4
        private void MarkDcDownIfNecessary(GenericEventArg <TaskErrorEventArg> e)
        {
            if (e.Data.ExceptionHandled)
            {
                return;
            }
            ADDriverContext  threadADContext  = ADSessionSettings.GetThreadADContext();
            ADServerSettings adserverSettings = (threadADContext != null) ? threadADContext.ServerSettings : null;

            if (this.context == null || adserverSettings == null)
            {
                return;
            }
            string text = null;

            for (Exception ex = e.Data.Exception; ex != null; ex = ex.InnerException)
            {
                if (ex is SuitabilityDirectoryException)
                {
                    text = ((SuitabilityDirectoryException)ex).Fqdn;
                    break;
                }
                if (ex is ServerInMMException)
                {
                    text = ((ServerInMMException)ex).Fqdn;
                    break;
                }
                if (ex is ADServerSettingsChangedException)
                {
                    ADServerSettings serverSettings = ((ADServerSettingsChangedException)ex).ServerSettings;
                    this.PersistNewServerSettings(serverSettings);
                    break;
                }
                if (ex == ex.InnerException)
                {
                    break;
                }
            }
            if (string.IsNullOrWhiteSpace(text))
            {
                return;
            }
            Fqdn fqdn;

            if (Fqdn.TryParse(text, out fqdn))
            {
                try
                {
                    adserverSettings.MarkDcDown(fqdn);
                    CmdletLogger.SafeAppendGenericInfo(this.context.UniqueId, "MarkDcDown", fqdn);
                    return;
                }
                catch (NotSupportedException)
                {
                    CmdletLogger.SafeAppendGenericInfo(this.context.UniqueId, "MarkDcDown-NotSupportedException", fqdn);
                    return;
                }
            }
            CmdletLogger.SafeAppendGenericInfo(this.context.UniqueId, "MarkDcDown-InvalidFqdn", fqdn);
        }
Esempio n. 4
0
 public LogDataAnalyzer(TrackingContext context)
 {
     this.context           = context;
     this.startingServer    = Fqdn.Parse(this.context.StartingEventId.Server);
     this.cache             = context.Cache;
     this.remainingTrackers = new Queue <MailItemTracker>();
 }
Esempio n. 5
0
        protected override void InternalProcessRecord()
        {
            TaskLogger.LogEnter();
            ITopologyConfigurationSession topologyConfigurationSession = DirectorySessionFactory.Default.CreateTopologyConfigurationSession(ConsistencyMode.FullyConsistent, ADSessionSettings.FromRootOrgScopeSet(), 468, "InternalProcessRecord", "f:\\15.00.1497\\sources\\dev\\Management\\src\\Management\\Deployment\\TestSetupPrerequisites.cs");
            string           targetDir                   = (this.TargetDir != null) ? this.TargetDir.ToString() : null;
            Version          exchangeVersion             = new Version(this.ExchangeVersion);
            int              adamport                    = this.ADAMPort;
            int              adamsslport                 = this.ADAMSSLPort;
            bool             createPublicDB              = this.CreatePublicDB;
            bool             customerFeedbackEnabled     = this.CustomerFeedbackEnabled != null && this.CustomerFeedbackEnabled.Value;
            string           newProvisionedServerName    = this.NewProvisionedServerName;
            string           removeProvisionedServerName = this.RemoveProvisionedServerName;
            Fqdn             fqdn             = topologyConfigurationSession.ServerSettings.PreferredGlobalCatalog(TopologyProvider.LocalForestFqdn);
            GlobalParameters globalParameters = new GlobalParameters(targetDir, exchangeVersion, adamport, adamsslport, createPublicDB, customerFeedbackEnabled, newProvisionedServerName, removeProvisionedServerName, (fqdn != null) ? fqdn : "", (this.DomainController != null) ? this.DomainController.ToString() : "", this.PrepareDomain, this.PrepareSCT, this.PrepareOrganization, this.PrepareSchema, this.PrepareAllDomains, this.ADInitError, this.LanguagePackDir, this.LanguagesAvailableToInstall, this.SufficientLanguagePackDiskSpace, this.LanguagePacksInstalled, this.AlreadyInstallUMLanguages, this.LanguagePackVersioning, this.ActiveDirectorySplitPermissions != null && this.ActiveDirectorySplitPermissions.Value, this.SetupRoles, this.GetIgnoreFilesInUseFlag(), this.HostingDeploymentEnabled, this.PathToDCHybridConfigFile, this.IsDatacenter);

            try
            {
                TaskLogger.LogAllAsInfo = true;
                SetupPrereqChecks setupPrereqChecks = new SetupPrereqChecks(this.PrereqSetupMode, this.PrereqSetupRoles, globalParameters);
                setupPrereqChecks.DoCheckPrereqs(new Action <int>(this.WriteProgressRecord), this);
            }
            finally
            {
                TaskLogger.LogAllAsInfo = false;
            }
            TaskLogger.LogExit();
        }
Esempio n. 6
0
 public IEnumerable GetOutboundConnectors(Fqdn domain, IConfigDataProvider configDataProvider)
 {
     return(this.GetData("Microsoft.Exchange.Hygiene.Reporting.SMTPVerificationTests.VerifyOutboundConnector", configDataProvider, new object[]
     {
         domain
     }));
 }
Esempio n. 7
0
        private List <MessageTrackingLogEntry> GetMessageLog(RpcReason rpcReason, ILogReader logReader, TrackingLogPrefix logPrefix, string messageId)
        {
            Fqdn key = Fqdn.Parse(logReader.Server);
            Dictionary <string, List <MessageTrackingLogEntry>[]> dictionary = null;

            List <MessageTrackingLogEntry>[] array = null;
            if (!this.cache.TryGetValue(key, out dictionary))
            {
                dictionary = new Dictionary <string, List <MessageTrackingLogEntry>[]>();
                this.cache.Add(key, dictionary);
            }
            if (!dictionary.TryGetValue(messageId, out array))
            {
                array = new List <MessageTrackingLogEntry> [LogCache.prefixValues.Length];
                for (int i = 0; i < LogCache.prefixValues.Length; i++)
                {
                    List <MessageTrackingLogEntry> list = logReader.ReadLogs(rpcReason, LogCache.prefixValues[i], messageId, this.startTime, this.endTime, this.eventBudget);
                    if (logReader.MtrSchemaVersion >= MtrSchemaVersion.E15RTM)
                    {
                        list.RemoveAll((MessageTrackingLogEntry entry) => entry.EventId == MessageTrackingEvent.RECEIVE && entry.Source == MessageTrackingSource.STOREDRIVER);
                        list.RemoveAll((MessageTrackingLogEntry entry) => entry.EventId == MessageTrackingEvent.HADISCARD && entry.Source == MessageTrackingSource.SMTP);
                        list.RemoveAll((MessageTrackingLogEntry entry) => entry.EventId == MessageTrackingEvent.AGENTINFO && entry.Source == MessageTrackingSource.AGENT);
                    }
                    array[i] = list;
                }
                dictionary.Add(messageId, array);
            }
            return(array[(int)logPrefix]);
        }
Esempio n. 8
0
        private static object DatabaseGetter(IPropertyBag propertyBag)
        {
            bool        flag;
            MservRecord record = MServRecipientSchema.GetRecord(propertyBag, MservValueFormat.Exo, out flag);

            if (record == null)
            {
                return(null);
            }
            string exoForestFqdn = record.ExoForestFqdn;

            if (!Fqdn.IsValidFqdn(exoForestFqdn))
            {
                throw new DataValidationException(new PropertyValidationError(DirectoryStrings.CannotCalculatePropertyGeneric(MServRecipientSchema.Database.Name), MServRecipientSchema.Database, record));
            }
            Guid guid;

            try
            {
                guid = new Guid(record.ExoDatabaseId);
            }
            catch (Exception ex)
            {
                throw new DataValidationException(new PropertyValidationError(DirectoryStrings.CannotCalculateProperty(MServRecipientSchema.Database.Name, ex.Message), MServRecipientSchema.Database, record), ex);
            }
            return(new ADObjectId(guid, exoForestFqdn));
        }
Esempio n. 9
0
 // Token: 0x06000451 RID: 1105 RVA: 0x0000F550 File Offset: 0x0000D750
 internal static OrganizationId ResolveTargetOrganization(Fqdn domainController, OrganizationIdParameter organization, ADObjectId rootOrgContainerId, OrganizationId currentOrganizationId, OrganizationId executingUserOrganizationId)
 {
     if (organization != null)
     {
         ADSessionSettings     sessionSettings = ADSessionSettings.FromOrganizationIdWithoutRbacScopes(rootOrgContainerId, currentOrganizationId, executingUserOrganizationId, false);
         IConfigurationSession tenantOrTopologyConfigurationSession = DirectorySessionFactory.Default.GetTenantOrTopologyConfigurationSession(domainController, true, ConsistencyMode.PartiallyConsistent, null, sessionSettings, ConfigScopes.TenantSubTree, 183, "ResolveTargetOrganization", "f:\\15.00.1497\\sources\\dev\\Configuration\\src\\ObjectModel\\BaseTasks\\MapiTaskHelper.cs");
         tenantOrTopologyConfigurationSession.UseConfigNC = false;
         ADOrganizationalUnit adorganizationalUnit  = null;
         LocalizedString?     localizedString       = null;
         IEnumerable <ADOrganizationalUnit> objects = organization.GetObjects <ADOrganizationalUnit>(null, tenantOrTopologyConfigurationSession, null, out localizedString);
         using (IEnumerator <ADOrganizationalUnit> enumerator = objects.GetEnumerator())
         {
             if (!enumerator.MoveNext())
             {
                 throw new ManagementObjectNotFoundException(Strings.ErrorOrganizationNotFound(organization.ToString()));
             }
             adorganizationalUnit = enumerator.Current;
             if (enumerator.MoveNext())
             {
                 throw new ManagementObjectAmbiguousException(Strings.ErrorOrganizationNotUnique(organization.ToString()));
             }
         }
         return(adorganizationalUnit.OrganizationId);
     }
     return(currentOrganizationId ?? executingUserOrganizationId);
 }
        // Token: 0x06000FAA RID: 4010 RVA: 0x0003FE30 File Offset: 0x0003E030
        private SmtpConnectionSettings BuildSmtpConnectionSettings(XElement settings)
        {
            Fqdn attributeValue  = GlobalConnectionSettingsProvider.GetAttributeValue <Fqdn>(settings, "out-serv", new Func <string, string, Fqdn>(GlobalConnectionSettingsProvider.ServerAttributeToFqdn));
            int  attributeValue2 = GlobalConnectionSettingsProvider.GetAttributeValue <int>(settings, "out-port", new Func <string, string, int>(GlobalConnectionSettingsProvider.ServerAttributeToInteger));

            return(new SmtpConnectionSettings(attributeValue, attributeValue2));
        }
Esempio n. 11
0
        internal static ADDomainTrustInfo ResolveAndValidateForestTrustForADDomain(Fqdn domainFqdn, Task.ErrorLoggerDelegate errorDelegate, IConfigurationSession configSession)
        {
            if (domainFqdn == null)
            {
                throw new ArgumentNullException("domainFqdn");
            }
            if (errorDelegate == null)
            {
                throw new ArgumentNullException("errorDelegate");
            }
            if (configSession == null)
            {
                throw new ArgumentNullException("configSession");
            }
            ADForest localForest = ADForest.GetLocalForest();

            ADDomainTrustInfo[] array = localForest.FindTrustRelationshipsForDomain(domainFqdn);
            if (array == null || array.Length == 0)
            {
                errorDelegate(new ManagementObjectNotFoundException(Strings.ErrorManagementObjectNotFound(domainFqdn.ToString())), ExchangeErrorCategory.Client, null);
            }
            else if (array.Length != 1)
            {
                errorDelegate(new ManagementObjectAmbiguousException(Strings.ErrorManagementObjectAmbiguous(domainFqdn.ToString())), ExchangeErrorCategory.Client, null);
            }
            ADDomainTrustInfo addomainTrustInfo = array[0];

            AccountPartition[] array2 = configSession.Find <AccountPartition>(configSession.GetOrgContainerId().GetChildId(AccountPartition.AccountForestContainerName), QueryScope.OneLevel, new ComparisonFilter(ComparisonOperator.Equal, AccountPartitionSchema.TrustedDomainLink, addomainTrustInfo.DistinguishedName), null, 1);
            if (array2 != null && array2.Length != 0)
            {
                errorDelegate(new LocalizedException(Strings.ErrorTrustAlreadyInUse(addomainTrustInfo.Name, array2[0].Name)), ExchangeErrorCategory.Client, null);
            }
            return(addomainTrustInfo);
        }
Esempio n. 12
0
        public void IsFailedLdapDefaultConnectionStringWithBadDomainFqdn()
        {
            var fqdn       = "controller.google.";
            var fqdnResult = Fqdn.Create(fqdn);

            Assert.IsFalse(fqdnResult.IsSuccess);
        }
 public static Uri GetRemotePowerShellUri(Fqdn server)
 {
     if (server == null)
     {
         return(null);
     }
     return(new Uri(string.Format(PSConnectionInfoSingleton.RemotePowerShellUrlFormat, server.ToString())));
 }
Esempio n. 14
0
        public void FqdnIsEqualWhenCaseIsDifferent()
        {
            var fqdn = "foo.google.com";
            var a    = Fqdn.Create(fqdn.ToUpperInvariant()).Value;
            var b    = Fqdn.Create(fqdn.ToLowerInvariant()).Value;

            Assert.IsTrue(a.Equals(b));
        }
Esempio n. 15
0
 public MapiSession(string serverExchangeLegacyDn, Fqdn serverFqdn, ConsistencyMode consistencyMode)
 {
     this.serverName             = serverFqdn.ToString().ToLowerInvariant();
     this.serverExchangeLegacyDn = serverExchangeLegacyDn.ToLowerInvariant();
     this.consistencyMode        = consistencyMode;
     this.disposeTracker         = this.GetDisposeTracker();
     this.disposed = false;
 }
 // Token: 0x060007E5 RID: 2021 RVA: 0x0001D098 File Offset: 0x0001B298
 public AccountPartitionIdParameter(Fqdn fqdn) : base((fqdn == null) ? null : fqdn.ToString())
 {
     if (fqdn == null)
     {
         throw new ArgumentNullException("fqdn");
     }
     this.fqdn = fqdn;
 }
Esempio n. 17
0
        internal static IRecipientSession GetWritableRecipientSession(Fqdn domainController)
        {
            IRecipientSession tenantOrRootOrgRecipientSession = DirectorySessionFactory.Default.GetTenantOrRootOrgRecipientSession(domainController, false, ConsistencyMode.PartiallyConsistent, ADSessionSettings.FromRootOrgScopeSet(), 514, "GetWritableRecipientSession", "f:\\15.00.1497\\sources\\dev\\Management\\src\\Management\\Common\\recipient\\PermissionTaskHelper.cs");

            tenantOrRootOrgRecipientSession.EnforceDefaultScope  = false;
            tenantOrRootOrgRecipientSession.LinkResolutionServer = ADSession.GetCurrentConfigDC(tenantOrRootOrgRecipientSession.SessionSettings.GetAccountOrResourceForestFqdn());
            return(tenantOrRootOrgRecipientSession);
        }
Esempio n. 18
0
        // Token: 0x06000453 RID: 1107 RVA: 0x0000F6CC File Offset: 0x0000D8CC
        private static void GetServerForDatabase(Guid publicFolderDatabaseGuid, out string serverLegacyDn, out Fqdn serverFqdn)
        {
            ActiveManager        activeManagerInstance = ActiveManager.GetActiveManagerInstance();
            DatabaseLocationInfo serverForDatabase     = activeManagerInstance.GetServerForDatabase(publicFolderDatabaseGuid, GetServerForDatabaseFlags.ThrowServerForDatabaseNotFoundException);

            serverFqdn     = Fqdn.Parse(serverForDatabase.ServerFqdn);
            serverLegacyDn = serverForDatabase.ServerLegacyDN;
        }
Esempio n. 19
0
        internal static IRecipientSession GetReadOnlyRecipientSession(Fqdn domainController)
        {
            IRecipientSession tenantOrRootOrgRecipientSession = DirectorySessionFactory.Default.GetTenantOrRootOrgRecipientSession(domainController, true, ConsistencyMode.PartiallyConsistent, ADSessionSettings.FromRootOrgScopeSet(), 474, "GetReadOnlyRecipientSession", "f:\\15.00.1497\\sources\\dev\\Management\\src\\Management\\Common\\recipient\\PermissionTaskHelper.cs");

            tenantOrRootOrgRecipientSession.EnforceDefaultScope = false;
            tenantOrRootOrgRecipientSession.UseGlobalCatalog    = true;
            tenantOrRootOrgRecipientSession.UseGlobalCatalog    = tenantOrRootOrgRecipientSession.IsReadConnectionAvailable();
            return(tenantOrRootOrgRecipientSession);
        }
Esempio n. 20
0
        protected override void WriteResult(IConfigurable dataObject)
        {
            TaskLogger.LogEnter(new object[]
            {
                dataObject.Identity,
                dataObject
            });
            ClientAccessServer clientAccessServer = new ClientAccessServer((Server)dataObject);

            if (this.IncludeAlternateServiceAccountCredentialPassword.ToBool())
            {
                SetClientAccessServer.EnsureRunningOnTargetServer(this, (Server)dataObject);
                clientAccessServer.AlternateServiceAccountConfiguration = AlternateServiceAccountConfiguration.LoadWithPasswordsFromRegistry();
            }
            else if (this.IncludeAlternateServiceAccountCredentialStatus.ToBool())
            {
                clientAccessServer.AlternateServiceAccountConfiguration = AlternateServiceAccountConfiguration.LoadFromRegistry(clientAccessServer.Fqdn);
            }
            IConfigurable[] array = this.ConfigurationSession.Find <ADRpcHttpVirtualDirectory>((ADObjectId)clientAccessServer.Identity, QueryScope.SubTree, null, null, 1);
            clientAccessServer.OutlookAnywhereEnabled = new bool?(array.Length > 0);
            QueryFilter filter = ExchangeScpObjects.AutodiscoverUrlKeyword.Filter;

            array = this.ConfigurationSession.Find <ADServiceConnectionPoint>((ADObjectId)clientAccessServer.Identity, QueryScope.SubTree, filter, null, 2);
            if (array.Length == 1)
            {
                ADServiceConnectionPoint adserviceConnectionPoint = array[0] as ADServiceConnectionPoint;
                if (adserviceConnectionPoint.ServiceBindingInformation.Count > 0)
                {
                    clientAccessServer.AutoDiscoverServiceInternalUri = new Uri(adserviceConnectionPoint.ServiceBindingInformation[0]);
                }
                clientAccessServer.AutoDiscoverServiceGuid      = new Guid?(GetClientAccessServer.ScpUrlGuid);
                clientAccessServer.AutoDiscoverServiceCN        = Fqdn.Parse(adserviceConnectionPoint.ServiceDnsName);
                clientAccessServer.AutoDiscoverServiceClassName = adserviceConnectionPoint.ServiceClassName;
                if (adserviceConnectionPoint.Keywords != null && adserviceConnectionPoint.Keywords.Count > 1)
                {
                    MultiValuedProperty <string> multiValuedProperty = null;
                    foreach (string text in adserviceConnectionPoint.Keywords)
                    {
                        if (text.StartsWith("site=", StringComparison.OrdinalIgnoreCase))
                        {
                            if (multiValuedProperty == null)
                            {
                                multiValuedProperty = new MultiValuedProperty <string>();
                            }
                            multiValuedProperty.Add(text.Substring(5));
                        }
                    }
                    if (multiValuedProperty != null && multiValuedProperty.Count > 0)
                    {
                        clientAccessServer.AutoDiscoverSiteScope = multiValuedProperty;
                    }
                }
            }
            base.WriteResult(clientAccessServer);
            TaskLogger.LogExit();
        }
        internal override Fqdn ConfigurationDomainController(string partitionFqdn)
        {
            Fqdn fqdn = this.userConfigurationDomainController;

            if (fqdn != null && ADServerSettings.IsServerNamePartitionSameAsPartitionId(fqdn, partitionFqdn))
            {
                return(fqdn);
            }
            return(base.ConfigurationDomainController(partitionFqdn));
        }
        internal override Fqdn PreferredGlobalCatalog(string partitionFqdn)
        {
            Fqdn fqdn = this.userPreferredGlobalCatalog;

            if (fqdn != null && ADServerSettings.IsServerNamePartitionSameAsPartitionId(fqdn, partitionFqdn))
            {
                return(fqdn);
            }
            return(base.PreferredGlobalCatalog(partitionFqdn));
        }
Esempio n. 23
0
 public void RedirectServer(string serverExchangeLegacyDn, Fqdn serverFqdn)
 {
     if (string.Equals(this.serverExchangeLegacyDn, serverExchangeLegacyDn, StringComparison.OrdinalIgnoreCase))
     {
         return;
     }
     this.ReturnBackConnections();
     this.serverName             = serverFqdn.ToString().ToLowerInvariant();
     this.serverExchangeLegacyDn = serverExchangeLegacyDn.ToLowerInvariant();
 }
        // Token: 0x060005A8 RID: 1448 RVA: 0x0001F900 File Offset: 0x0001DB00
        internal virtual void AddPreferredDC(Fqdn fqdn)
        {
            if (this.EnforceIsUpdatableByADSession && !this.IsUpdatableByADSession)
            {
                throw new NotSupportedException("AddPreferredDC passing Fqdn is not supported on " + base.GetType().Name);
            }
            ADServerInfo serverInfoFromFqdn = ADServerSettings.GetServerInfoFromFqdn(fqdn, ConnectionType.DomainController);

            this.InternalAddPreferredDC(serverInfoFromFqdn);
        }
Esempio n. 25
0
        private List <MessageTrackingLogEntry> GetMessageLog(RpcReason rpcReason, ILogReader logReader, TrackingLogPrefix logPrefix, ProxyAddressCollection senderAddresses)
        {
            Fqdn key = Fqdn.Parse(logReader.Server);
            Dictionary <ProxyAddressCollection, List <MessageTrackingLogEntry>[]> dictionary = null;

            List <MessageTrackingLogEntry>[] array = null;
            if (!this.cacheBySender.TryGetValue(key, out dictionary))
            {
                dictionary = new Dictionary <ProxyAddressCollection, List <MessageTrackingLogEntry>[]>(1, LogCache.proxyAddressCollectionComparer);
                this.cacheBySender.Add(key, dictionary);
            }
            if (!dictionary.TryGetValue(senderAddresses, out array))
            {
                array = new List <MessageTrackingLogEntry> [LogCache.prefixValues.Length];
                for (int i = 0; i < LogCache.prefixValues.Length; i++)
                {
                    List <MessageTrackingLogEntry> list = logReader.ReadLogs(rpcReason, LogCache.prefixValues[i], senderAddresses, this.startTime, this.endTime, this.eventBudget);
                    array[i] = list;
                    Dictionary <string, List <MessageTrackingLogEntry>[]> dictionary2 = null;
                    bool             flag    = !this.cache.TryGetValue(key, out dictionary2);
                    HashSet <string> hashSet = new HashSet <string>();
                    foreach (MessageTrackingLogEntry messageTrackingLogEntry in list)
                    {
                        if (!flag && !dictionary2.ContainsKey(messageTrackingLogEntry.MessageId) && !hashSet.Contains(messageTrackingLogEntry.MessageId))
                        {
                            hashSet.Add(messageTrackingLogEntry.MessageId);
                        }
                    }
                    if (flag)
                    {
                        dictionary2 = new Dictionary <string, List <MessageTrackingLogEntry>[]>(hashSet.Count);
                        this.cache.Add(key, dictionary2);
                    }
                    foreach (MessageTrackingLogEntry messageTrackingLogEntry2 in list)
                    {
                        if (hashSet.Contains(messageTrackingLogEntry2.MessageId))
                        {
                            List <MessageTrackingLogEntry>[] array2;
                            if (!dictionary2.TryGetValue(messageTrackingLogEntry2.MessageId, out array2))
                            {
                                array2 = new List <MessageTrackingLogEntry> [LogCache.prefixValues.Length];
                                dictionary2.Add(messageTrackingLogEntry2.MessageId, array2);
                            }
                            if (array2[i] == null)
                            {
                                array2[i] = new List <MessageTrackingLogEntry>();
                            }
                            array2[i].Add(messageTrackingLogEntry2);
                        }
                    }
                }
                dictionary.Add(senderAddresses, array);
            }
            return(array[(int)logPrefix]);
        }
Esempio n. 26
0
        internal static DlpPolicyTemplateMetaData LoadOutOfBoxDlpTemplate(Fqdn domainController, string templateName)
        {
            IConfigDataProvider dataSession         = DlpUtils.CreateOrgSession(domainController);
            ADComplianceProgram adcomplianceProgram = DlpUtils.GetOutOfBoxDlpTemplates(dataSession, templateName).FirstOrDefault <ADComplianceProgram>();

            if (adcomplianceProgram != null)
            {
                return(DlpPolicyParser.ParseDlpPolicyTemplate(adcomplianceProgram.TransportRulesXml));
            }
            return(null);
        }
        internal static IRecipientSession CreateGlobalCatalogRBACSession(Fqdn domainController, ADSessionSettings sessionSettings)
        {
            IRecipientSession tenantOrRootOrgRecipientSession = DirectorySessionFactory.Default.GetTenantOrRootOrgRecipientSession(domainController, true, ConsistencyMode.PartiallyConsistent, null, sessionSettings, ConfigScopes.TenantSubTree, 188, "CreateGlobalCatalogRBACSession", "f:\\15.00.1497\\sources\\dev\\Management\\src\\Management\\RecipientTasks\\DistributionList\\DistributionGroupMemberTaskBase.cs");

            if (!tenantOrRootOrgRecipientSession.IsReadConnectionAvailable())
            {
                tenantOrRootOrgRecipientSession = DirectorySessionFactory.Default.GetTenantOrRootOrgRecipientSession(null, true, ConsistencyMode.PartiallyConsistent, null, sessionSettings, ConfigScopes.TenantSubTree, 198, "CreateGlobalCatalogRBACSession", "f:\\15.00.1497\\sources\\dev\\Management\\src\\Management\\RecipientTasks\\DistributionList\\DistributionGroupMemberTaskBase.cs");
            }
            tenantOrRootOrgRecipientSession.UseGlobalCatalog = true;
            return(tenantOrRootOrgRecipientSession);
        }
Esempio n. 28
0
 // Token: 0x06000506 RID: 1286 RVA: 0x0001C734 File Offset: 0x0001A934
 internal bool IsServerKnown(Fqdn serverFqdn)
 {
     foreach (SyncWrapper <PartitionBasedADRunspaceServerSettingsProvider> syncWrapper in this.internalProviders.Values)
     {
         if (syncWrapper.Value != null && syncWrapper.Value.IsServerKnown(serverFqdn))
         {
             return(true);
         }
     }
     return(false);
 }
Esempio n. 29
0
        public void IsCorrectLdapDefaultConnectionStringWithValidDomainFqdn()
        {
            var fqdn       = "google.com";
            var fqdnResult = Fqdn.Create(fqdn);

            Assert.IsTrue(fqdnResult.IsSuccess);

            var result = fqdnResult.Value.ToLdapConnectionString();

            Assert.AreEqual("LDAP://google.com/DC=google,DC=com", result);
        }
 // Token: 0x060005A4 RID: 1444 RVA: 0x0001F81C File Offset: 0x0001DA1C
 internal virtual void SetConfigurationDomainController(string partitionFqdn, Fqdn fqdn)
 {
     if (this.EnforceIsUpdatableByADSession && !this.IsUpdatableByADSession)
     {
         throw new NotSupportedException("SetConfigurationDomainController passing Fqdn is not supported on " + base.GetType().Name);
     }
     ADServerSettings.GetServerInfoFromFqdn(fqdn, ConnectionType.DomainController);
     lock (this.syncRoot)
     {
         this.configurationDomainController[partitionFqdn] = fqdn;
     }
 }