private void RestoreTransportSettings(IConfigurationSession scSession)
        {
            ADPagedReader <TransportConfigContainer> adpagedReader = scSession.FindPaged <TransportConfigContainer>(null, QueryScope.SubTree, null, null, 0);

            foreach (TransportConfigContainer transportConfigContainer in adpagedReader)
            {
                transportConfigContainer.TLSSendDomainSecureList    = null;
                transportConfigContainer.TLSReceiveDomainSecureList = null;
                transportConfigContainer.InternalSMTPServers        = null;
                scSession.Save(transportConfigContainer);
            }
        }
Exemplo n.º 2
0
 public static ADGroup GetDNSAdmins(ADDomain dom, IConfigurationSession session)
 {
     if (dom == null || session == null)
     {
         return(null);
     }
     ADObjectId[] ids = new ADObjectId[]
     {
         new ADObjectId("CN=DnsAdmins,CN=Users," + dom.DistinguishedName)
     };
     return(session.FindByADObjectIds <ADGroup>(ids)[0].Data);
 }
        private void RemoveEdgeSyncedObjects <T>(IConfigurationSession scSession) where T : ADConfigurationObject, new()
        {
            ADPagedReader <T> adpagedReader = scSession.FindPaged <T>(null, QueryScope.SubTree, null, null, 0);

            foreach (T t in adpagedReader)
            {
                scSession.DeleteTree(t, delegate(ADTreeDeleteNotFinishedException de)
                {
                    base.WriteVerbose(de.LocalizedString);
                });
            }
        }
        internal static MailboxReplicationServiceClient Create(IConfigurationSession session, MRSJobType jobType, Guid mdbGuid, List <string> unreachableMrsServers)
        {
            MRSCapabilities     requiredCapability = RequestJobXML.MapJobTypeToCapability(jobType);
            string              text = null;
            DatabaseInformation databaseInformation = MapiUtils.FindServerForMdb(mdbGuid, null, null, FindServerFlags.None);

            if (!string.IsNullOrEmpty(databaseInformation.ServerFqdn))
            {
                text = databaseInformation.ServerFqdn.ToLower(CultureInfo.InvariantCulture);
            }
            List <string> mrsServers = MailboxReplicationServiceClient.GetMrsServers(session, mdbGuid);
            List <string> list       = new List <string>(mrsServers.Count);

            foreach (string text2 in mrsServers)
            {
                string text3 = text2.ToLower(CultureInfo.InvariantCulture);
                if (string.Compare(text3, text, CultureInfo.InvariantCulture, CompareOptions.Ordinal) != 0 && !unreachableMrsServers.Contains(text3))
                {
                    list.Add(text2);
                }
            }
            List <string> list2 = CommonUtils.RandomizeSequence <string>(list);

            if (text != null)
            {
                list2.Insert(0, text);
            }
            foreach (string text4 in list2)
            {
                try
                {
                    return(MailboxReplicationServiceClient.Create(text4, requiredCapability));
                }
                catch (MailboxReplicationPermanentException ex)
                {
                    MrsTracer.Common.Warning("Attempt to connect to CAS Server {0} failed with error: {1}", new object[]
                    {
                        text4,
                        CommonUtils.FullExceptionMessage(ex)
                    });
                }
                catch (MailboxReplicationTransientException ex2)
                {
                    MrsTracer.Common.Warning("Attempt to connect to CAS Server {0} failed with error: {1}", new object[]
                    {
                        text4,
                        CommonUtils.FullExceptionMessage(ex2)
                    });
                }
                unreachableMrsServers.Add(text4.ToLower(CultureInfo.InvariantCulture));
            }
            throw new NoMRSAvailableTransientException();
        }
        protected override void InternalProcessRecord()
        {
            IConfigurationSession configurationSession = (IConfigurationSession)base.DataSession;

            configurationSession.DeleteTree(base.DataObject, delegate(ADTreeDeleteNotFinishedException de)
            {
                if (de != null)
                {
                    base.WriteVerbose(de.LocalizedString);
                }
            });
        }
Exemplo n.º 6
0
        // Token: 0x06000F8C RID: 3980 RVA: 0x0004A3F0 File Offset: 0x000485F0
        private ExchangeConfigurationUnit ReadCU()
        {
            ADSessionSettings         sessionSettings = ADSessionSettings.FromOrganizationIdWithoutRbacScopesServiceOnly(this);
            IConfigurationSession     tenantOrTopologyConfigurationSession = DirectorySessionFactory.Default.GetTenantOrTopologyConfigurationSession(ConsistencyMode.IgnoreInvalid, sessionSettings, 671, "ReadCU", "f:\\15.00.1497\\sources\\dev\\data\\src\\directory\\OrganizationId.cs");
            ExchangeConfigurationUnit exchangeConfigurationUnit            = tenantOrTopologyConfigurationSession.Read <ExchangeConfigurationUnit>(this.ConfigurationUnit);

            if (exchangeConfigurationUnit == null)
            {
                throw new CannotResolveTenantNameException(DirectoryStrings.TenantOrgContainerNotFoundException(this.configUnit.DistinguishedName));
            }
            return(exchangeConfigurationUnit);
        }
Exemplo n.º 7
0
 private void ApplyDefaultTransportSettings(IConfigurationSession session)
 {
     TransportConfigContainer[] array = session.Find <TransportConfigContainer>(null, QueryScope.SubTree, null, null, 1);
     if (array == null || array.Length == 0)
     {
         return;
     }
     array[0].MaxRecipientEnvelopeLimit = 500;
     array[0].MaxReceiveSize            = ByteQuantifiedSize.FromKB(10240UL);
     array[0].MaxSendSize = ByteQuantifiedSize.FromKB(10240UL);
     session.Save(array[0]);
 }
        private void MarkDivergencesHalting(QueryFilter filter)
        {
            ForwardSyncDataAccessHelper       forwardSyncDataAccessHelper = new ForwardSyncDataAccessHelper(base.DataObject.ServiceInstanceId);
            IEnumerable <FailedMSOSyncObject> enumerable           = forwardSyncDataAccessHelper.FindDivergence(filter);
            IConfigurationSession             configurationSession = ForwardSyncDataAccessHelper.CreateSession(false);

            foreach (FailedMSOSyncObject failedMSOSyncObject in enumerable)
            {
                failedMSOSyncObject.IsIgnoredInHaltCondition = false;
                configurationSession.Save(failedMSOSyncObject);
            }
        }
        // Token: 0x06000B6D RID: 2925 RVA: 0x00032990 File Offset: 0x00030B90
        public static bool IsPublicFolderReplicationSuspended()
        {
            bool result = false;
            IConfigurationSession tenantOrTopologyConfigurationSession = DirectorySessionFactory.Default.GetTenantOrTopologyConfigurationSession(false, ConsistencyMode.PartiallyConsistent, ADSessionSettings.FromRootOrgScopeSet(), 97, "IsPublicFolderReplicationSuspended", "f:\\15.00.1497\\sources\\dev\\cluster\\src\\Replay\\Core\\PublicFolderHelper.cs");

            Organization[] array = tenantOrTopologyConfigurationSession.Find <Organization>(null, QueryScope.SubTree, null, null, 0);
            if (array != null && array.Length > 0 && (array[0].Heuristics & HeuristicsFlags.SuspendFolderReplication) != HeuristicsFlags.None)
            {
                result = true;
            }
            return(result);
        }
 private OrganizationId ResolveCurrentOrganization()
 {
     if (this.Organization != null)
     {
         ADSessionSettings     sessionSettings = ADSessionSettings.FromOrganizationIdWithoutRbacScopes(base.RootOrgContainerId, base.CurrentOrganizationId, base.ExecutingUserOrganizationId, true);
         IConfigurationSession tenantOrTopologyConfigurationSession = DirectorySessionFactory.Default.GetTenantOrTopologyConfigurationSession(base.DomainController, true, ConsistencyMode.PartiallyConsistent, null, sessionSettings, ConfigScopes.TenantSubTree, 228, "ResolveCurrentOrganization", "f:\\15.00.1497\\sources\\dev\\Management\\src\\Management\\RecipientTasks\\TeamMailbox\\TeamMailboxDiagnosticsBase.cs");
         tenantOrTopologyConfigurationSession.UseConfigNC = false;
         ADOrganizationalUnit adorganizationalUnit = (ADOrganizationalUnit)base.GetDataObject <ADOrganizationalUnit>(this.Organization, tenantOrTopologyConfigurationSession, null, new LocalizedString?(Strings.ErrorOrganizationNotFound(this.Organization.ToString())), new LocalizedString?(Strings.ErrorOrganizationNotUnique(this.Organization.ToString())));
         return(adorganizationalUnit.OrganizationId);
     }
     return(base.CurrentOrganizationId ?? base.ExecutingUserOrganizationId);
 }
Exemplo n.º 11
0
        public static string GetServiceName()
        {
            ADSessionSettings     sessionSettings = ADSessionSettings.FromRootOrgScopeSet();
            IConfigurationSession tenantOrTopologyConfigurationSession = DirectorySessionFactory.Default.GetTenantOrTopologyConfigurationSession(ConsistencyMode.IgnoreInvalid, sessionSettings, 108, "GetServiceName", "f:\\15.00.1497\\sources\\dev\\data\\src\\directory\\SystemConfiguration\\OAuth\\OAuthConfigHelper.cs");
            AuthConfig            authConfig = AuthConfig.Read(tenantOrTopologyConfigurationSession);

            if (authConfig == null)
            {
                throw new InvalidAuthConfigurationException(DirectoryStrings.ErrorInvalidAuthSettings(string.Empty));
            }
            return((string)authConfig[AuthConfigSchema.ServiceName]);
        }
Exemplo n.º 12
0
 public static UMDialPlan GetDialPlanFromId(ADObjectId dialPlanId, IConfigurationSession session)
 {
     if (dialPlanId == null)
     {
         throw new ArgumentNullException("dialPlanId");
     }
     if (session == null)
     {
         throw new ArgumentNullException("session");
     }
     return(session.Read <UMDialPlan>(dialPlanId));
 }
Exemplo n.º 13
0
        protected override IConfigDataProvider CreateSession()
        {
            if (OrganizationId.ForestWideOrgId.Equals(base.CurrentOrganizationId))
            {
                base.WriteError(new ArgumentException(Strings.TenantOrganizationMissing, string.Empty), (ErrorCategory)1000, null);
            }
            ADObjectId            rootOrgContainerIdForLocalForest = ADSystemConfigurationSession.GetRootOrgContainerIdForLocalForest();
            ADSessionSettings     sessionSettings = ADSessionSettings.FromCustomScopeSet(base.ScopeSet, rootOrgContainerIdForLocalForest, base.CurrentOrganizationId, base.ExecutingUserOrganizationId, true);
            IConfigurationSession tenantOrTopologyConfigurationSession = DirectorySessionFactory.Default.GetTenantOrTopologyConfigurationSession(this.DomainController, false, ConsistencyMode.PartiallyConsistent, sessionSettings, 149, "CreateSession", "f:\\15.00.1497\\sources\\dev\\Management\\src\\Management\\rms\\SetRmsTemplate.cs");

            return(new RmsTemplateDataProvider(tenantOrTopologyConfigurationSession, RmsTemplateType.All, true));
        }
        // Token: 0x06000E62 RID: 3682 RVA: 0x00056A70 File Offset: 0x00054C70
        private static ADObjectId GetDefaultSharingPolicyId(IConfigurationSession configurationSession)
        {
            FederatedOrganizationId federatedOrganizationId = configurationSession.GetFederatedOrganizationId(configurationSession.SessionSettings.CurrentOrganizationId);

            if (federatedOrganizationId == null || federatedOrganizationId.DefaultSharingPolicyLink == null)
            {
                SharingPolicyCache.Tracer.TraceError <OrganizationId>(0L, "Could not find FederatedOrganizationId or DefaultSharingPolicyLink for Org {0}", configurationSession.SessionSettings.CurrentOrganizationId);
                return(null);
            }
            SharingPolicyCache.Tracer.TraceDebug <OrganizationId, ADObjectId>(0L, "Found Default Policy Id {0} for Org {1} ", configurationSession.SessionSettings.CurrentOrganizationId, federatedOrganizationId.DefaultSharingPolicyLink);
            return(federatedOrganizationId.DefaultSharingPolicyLink);
        }
Exemplo n.º 15
0
 private static void FillDictionaryWithCompatibleLocalUMServers(IConfigurationSession session, Dictionary <ADObjectId, Server> searchTable, ADObjectId localSiteId)
 {
     if (localSiteId != null)
     {
         QueryFilter queryFilter = new AndFilter(new QueryFilter[]
         {
             CommonUtil.GetCompatibleServersWithRole(VersionEnum.Compatible, ServerRole.UnifiedMessaging),
             new ComparisonFilter(ComparisonOperator.Equal, ServerSchema.ServerSite, localSiteId)
         });
         Utility.FillServerDictionary(session, searchTable, queryFilter);
     }
 }
        internal static ArbitrationConfigFromAD GetArbitrationConfigFromAD(string serviceInstanceName)
        {
            IConfigurationSession configurationSession = ForwardSyncDataAccessHelper.CreateSession(true);
            RidMasterInfo         ridMasterInfo        = SyncDaemonArbitrationConfigHelper.GetRidMasterInfo(configurationSession);

            SyncServiceInstance[] array = configurationSession.Find <SyncServiceInstance>(SyncServiceInstance.GetMsoSyncRootContainer(), QueryScope.SubTree, new ComparisonFilter(ComparisonOperator.Equal, ADObjectSchema.Name, serviceInstanceName), null, 1);
            if (array == null || array.Length != 1)
            {
                throw new SyncDaemonArbitrationConfigException(Strings.ErrorCannotRetrieveSyncDaemonArbitrationConfigContainer((array == null) ? "0" : array.Length.ToString()));
            }
            return(new ArbitrationConfigFromAD(array[0], ridMasterInfo));
        }
Exemplo n.º 17
0
        private static void LoadDCIsDirSyncRunning(OrganizationCache.AddValueHandler addValue, OrganizationCache.LogErrorHandler logError)
        {
            OrganizationId        organizationId = RbacPrincipal.Current.RbacConfiguration.OrganizationId;
            IConfigurationSession tenantOrTopologyConfigurationSession = DirectorySessionFactory.Default.GetTenantOrTopologyConfigurationSession(ConsistencyMode.IgnoreInvalid, ADSessionSettings.FromOrganizationIdWithoutRbacScopesServiceOnly(organizationId), 668, "LoadDCIsDirSyncRunning", "f:\\15.00.1497\\sources\\dev\\admin\\src\\ecp\\Organization\\OrganizationCache.cs");
            ADRawEntry            adrawEntry = tenantOrTopologyConfigurationSession.ReadADRawEntry(organizationId.ConfigurationUnit, new PropertyDefinition[]
            {
                OrganizationSchema.IsDirSyncRunning
            });
            bool flag = adrawEntry != null && (bool)adrawEntry[OrganizationSchema.IsDirSyncRunning];

            addValue("DCIsDirSyncRunning", flag);
        }
Exemplo n.º 18
0
        private void CreateAuthServersContainer()
        {
            ADObjectId containerId = AuthServer.GetContainerId(this.ConfigurationSession);

            if (this.ConfigurationSession.Read <Container>(containerId) == null)
            {
                IConfigurationSession configurationSession = (IConfigurationSession)base.DataSession;
                Container             container            = new Container();
                container.SetId(containerId);
                configurationSession.Save(container);
            }
        }
Exemplo n.º 19
0
 protected override OrganizationId ResolveCurrentOrganization()
 {
     if (this.Organization != null)
     {
         ADSessionSettings     sessionSettings = ADSessionSettings.FromOrganizationIdWithoutRbacScopes(base.RootOrgContainerId, base.CurrentOrganizationId, base.ExecutingUserOrganizationId, true);
         IConfigurationSession tenantOrTopologyConfigurationSession = DirectorySessionFactory.Default.GetTenantOrTopologyConfigurationSession(base.DomainController, true, ConsistencyMode.PartiallyConsistent, null, sessionSettings, 161, "ResolveCurrentOrganization", "f:\\15.00.1497\\sources\\dev\\Management\\src\\Management\\StoreTasks\\AsyncOperationNotification\\GetNotification.cs");
         tenantOrTopologyConfigurationSession.UseConfigNC = false;
         ADOrganizationalUnit adorganizationalUnit = (ADOrganizationalUnit)base.GetDataObject <ADOrganizationalUnit>(this.Organization, tenantOrTopologyConfigurationSession, null, new LocalizedString?(Strings.ErrorOrganizationNotFound(this.Organization.ToString())), new LocalizedString?(Strings.ErrorOrganizationNotUnique(this.Organization.ToString())));
         return(adorganizationalUnit.OrganizationId);
     }
     return(base.ResolveCurrentOrganization());
 }
Exemplo n.º 20
0
 private void ResolveCurrentOrganization()
 {
     if (this.Organization != null)
     {
         ADSessionSettings     sessionSettings = ADSessionSettings.FromOrganizationIdWithoutRbacScopes(base.RootOrgContainerId, base.CurrentOrganizationId, base.ExecutingUserOrganizationId, true);
         IConfigurationSession tenantOrTopologyConfigurationSession = DirectorySessionFactory.Default.GetTenantOrTopologyConfigurationSession(base.DomainController, true, ConsistencyMode.PartiallyConsistent, null, sessionSettings, 90, "ResolveCurrentOrganization", "f:\\15.00.1497\\sources\\dev\\Management\\src\\Management\\transport\\UnifiedPolicy\\Tasks\\RemoveCompliancePolicySyncNotification.cs");
         tenantOrTopologyConfigurationSession.UseConfigNC = false;
         ADOrganizationalUnit adorganizationalUnit = (ADOrganizationalUnit)base.GetDataObject <ADOrganizationalUnit>(this.Organization, tenantOrTopologyConfigurationSession, null, null, new LocalizedString?(Strings.ErrorOrganizationNotFound(this.Organization.ToString())), new LocalizedString?(Strings.ErrorOrganizationNotUnique(this.Organization.ToString())), ExchangeErrorCategory.Client);
         base.CurrentOrganizationId = adorganizationalUnit.OrganizationId;
     }
     Utils.ValidateNotForestWideOrganization(base.CurrentOrganizationId);
 }
Exemplo n.º 21
0
        private IConfigurationSession GetDialPlanSession()
        {
            IConfigurationSession result = (IConfigurationSession)base.DataSession;

            if (this.SharedUMDialPlan)
            {
                ADObjectId        rootOrgContainerIdForLocalForest = ADSystemConfigurationSession.GetRootOrgContainerIdForLocalForest();
                ADSessionSettings sessionSettings = ADSessionSettings.FromOrganizationIdWithoutRbacScopes(rootOrgContainerIdForLocalForest, base.CurrentOrganizationId, base.ExecutingUserOrganizationId, true);
                result = DirectorySessionFactory.Default.GetTenantOrTopologyConfigurationSession(ConsistencyMode.IgnoreInvalid, sessionSettings, 167, "GetDialPlanSession", "f:\\15.00.1497\\sources\\dev\\Management\\src\\Management\\MailboxPolicies\\UMMailboxPolicyTask.cs");
            }
            return(result);
        }
        // Token: 0x06000E61 RID: 3681 RVA: 0x000568D8 File Offset: 0x00054AD8
        private static SharingPolicyCache GetDehydratedPolicyFromCacheOrAD(OrganizationId orgId, ADObjectId policyId)
        {
            SharingPolicyCache sharingPolicyCache;

            if (policyId != SharingPolicyCache.DynamicDefaultPolicy)
            {
                lock (SharingPolicyCache.cacheSyncLock)
                {
                    if (SharingPolicyCache.dehydratedDefaultCache.TryGetValue(policyId.ObjectGuid, out sharingPolicyCache))
                    {
                        SharingPolicyCache.Tracer.TraceDebug <ADObjectId>(0L, "Found Sharing Policy {0} in dehydrated cache.", policyId);
                        return(sharingPolicyCache);
                    }
                }
            }
            SharedConfiguration   sharedConfiguration = SharedConfiguration.GetSharedConfiguration(orgId);
            IConfigurationSession tenantOrTopologyConfigurationSession = DirectorySessionFactory.Default.GetTenantOrTopologyConfigurationSession(ConsistencyMode.IgnoreInvalid, sharedConfiguration.GetSharedConfigurationSessionSettings(), 282, "GetDehydratedPolicyFromCacheOrAD", "f:\\15.00.1497\\sources\\dev\\MailboxAssistants\\src\\assistants\\SharingPolicy\\SharingPolicyCache.cs");

            tenantOrTopologyConfigurationSession.SessionSettings.IsSharedConfigChecked = true;
            bool flag2 = policyId == SharingPolicyCache.DynamicDefaultPolicy;

            if (flag2)
            {
                SharingPolicyCache.Tracer.TraceDebug <OrganizationId>(0L, "Find Default Policy Id for Org {0} ", orgId);
                policyId = SharingPolicyCache.GetDefaultSharingPolicyId(tenantOrTopologyConfigurationSession);
                if (policyId == null)
                {
                    return(null);
                }
                lock (SharingPolicyCache.cacheSyncLock)
                {
                    if (SharingPolicyCache.dehydratedDefaultCache.TryGetValue(policyId.ObjectGuid, out sharingPolicyCache))
                    {
                        SharingPolicyCache.Tracer.TraceDebug <ADObjectId>(0L, "Found Sharing Policy {0} in dehydrated cache.", policyId);
                        return(sharingPolicyCache);
                    }
                }
            }
            SharingPolicy sharingPolicy = tenantOrTopologyConfigurationSession.Read <SharingPolicy>(policyId);

            if (sharingPolicy == null)
            {
                SharingPolicyCache.Tracer.TraceError <ADObjectId, bool>(0L, "Unable to find SharingPolicy {0} in the AD. PolicyId is default:{1}", policyId, flag2);
                return(null);
            }
            sharingPolicyCache = new SharingPolicyCache(sharingPolicy, true);
            lock (SharingPolicyCache.cacheSyncLock)
            {
                SharingPolicyCache.dehydratedDefaultCache[policyId.ObjectGuid] = sharingPolicyCache;
            }
            return(sharingPolicyCache);
        }
Exemplo n.º 23
0
 public static void CleanADOrphanAndInconsistency()
 {
     PartitionId[] allAccountPartitionIds = ADAccountPartitionLocator.GetAllAccountPartitionIds();
     for (int i = 0; i < allAccountPartitionIds.Length; i++)
     {
         PartitionId partitionId = allAccountPartitionIds[i];
         CommonUtils.CheckForServiceStopping();
         ADSessionSettings adsessionSettings = ADSessionSettings.FromAllTenantsPartitionId(partitionId);
         adsessionSettings.IncludeSoftDeletedObjects = true;
         adsessionSettings.IncludeInactiveMailbox    = true;
         IRecipientSession     recipientSession = DirectorySessionFactory.Default.GetTenantOrRootOrgRecipientSession(null, false, ConsistencyMode.PartiallyConsistent, null, adsessionSettings, 45, "CleanADOrphanAndInconsistency", "f:\\15.00.1497\\sources\\dev\\mrs\\src\\Service\\ADInconsistencyCheck.cs");
         IConfigurationSession configSession    = DirectorySessionFactory.Default.GetTenantOrTopologyConfigurationSession(null, false, ConsistencyMode.PartiallyConsistent, null, adsessionSettings, 52, "CleanADOrphanAndInconsistency", "f:\\15.00.1497\\sources\\dev\\mrs\\src\\Service\\ADInconsistencyCheck.cs");
         using (List <Guid> .Enumerator enumerator = MapiUtils.GetDatabasesOnThisServer().GetEnumerator())
         {
             while (enumerator.MoveNext())
             {
                 Guid dbGuid = enumerator.Current;
                 CommonUtils.CheckForServiceStopping();
                 DatabaseInformation databaseInformation = MapiUtils.FindServerForMdb(dbGuid, null, null, FindServerFlags.AllowMissing);
                 if (databaseInformation.IsMissing)
                 {
                     MrsTracer.Service.Debug("CleanADOrphanAndInconsistency Database {0} in Forest {1} is missing, skip it", new object[]
                     {
                         dbGuid,
                         databaseInformation.ForestFqdn
                     });
                 }
                 else
                 {
                     CommonUtils.CatchKnownExceptions(delegate
                     {
                         ADInconsistencyCheck.CleanADOrphanAndInconsistencyForRequests(recipientSession, configSession, dbGuid);
                     }, delegate(Exception f)
                     {
                         MrsTracer.Service.Error("CleanADOrphanAndInconsistency() failed for DB {0}. Error: {1}", new object[]
                         {
                             dbGuid,
                             CommonUtils.FullExceptionMessage(f, true)
                         });
                         MRSService.LogEvent(MRSEventLogConstants.Tuple_ScanADInconsistencyRequestFailEvent, new object[]
                         {
                             dbGuid,
                             string.Empty,
                             string.Empty,
                             CommonUtils.FullExceptionMessage(f, true)
                         });
                     });
                 }
             }
         }
     }
 }
Exemplo n.º 24
0
        internal static List <AdFolderData> GetUserElcFolders(MailboxSession session, ADUser aduser, List <ELCFolder> allAdFolders, bool getFoldersOnly, bool getOrgFoldersOnly)
        {
            if (allAdFolders == null || allAdFolders.Count == 0 || aduser == null)
            {
                return(null);
            }
            string                arg             = session.MailboxOwner.MailboxInfo.PrimarySmtpAddress.ToString();
            ADSessionSettings     sessionSettings = ADSessionSettings.FromOrganizationIdWithoutRbacScopesServiceOnly(session.MailboxOwner.MailboxInfo.OrganizationId);
            IConfigurationSession tenantOrTopologyConfigurationSession = DirectorySessionFactory.Default.GetTenantOrTopologyConfigurationSession(ConsistencyMode.FullyConsistent, sessionSettings, 258, "GetUserElcFolders", "f:\\15.00.1497\\sources\\dev\\infoworker\\src\\common\\ELC\\AdFolderReader.cs");
            ADObjectId            managedFolderMailboxPolicy           = aduser.ManagedFolderMailboxPolicy;

            if (managedFolderMailboxPolicy == null)
            {
                AdReader.Tracer.TraceDebug <string>(0L, "Mailbox '{0}' does not have an ELC Mailbox policy.", arg);
                return(null);
            }
            ManagedFolderMailboxPolicy managedFolderMailboxPolicy2 = tenantOrTopologyConfigurationSession.Read <ManagedFolderMailboxPolicy>(managedFolderMailboxPolicy);

            if (managedFolderMailboxPolicy2 == null)
            {
                AdReader.Tracer.TraceDebug <string, ADObjectId>(0L, "Mailbox '{0}' no matching ELC Mailbox policy for Template '{1}'.", arg, managedFolderMailboxPolicy);
                return(null);
            }
            MultiValuedProperty <ADObjectId> managedFolderLinks = managedFolderMailboxPolicy2.ManagedFolderLinks;
            List <AdFolderData> list = new List <AdFolderData>();

            using (MultiValuedProperty <ADObjectId> .Enumerator enumerator = managedFolderLinks.GetEnumerator())
            {
                while (enumerator.MoveNext())
                {
                    ADObjectId elcFolderId = enumerator.Current;
                    ELCFolder  elcfolder   = allAdFolders.Find((ELCFolder adFolder) => elcFolderId.ObjectGuid == adFolder.Id.ObjectGuid);
                    if (elcfolder == null)
                    {
                        throw new ELCNoMatchingOrgFoldersException(elcFolderId.DistinguishedName);
                    }
                    if (!getOrgFoldersOnly || elcfolder.FolderType == ElcFolderType.ManagedCustomFolder)
                    {
                        AdFolderData adFolderData = new AdFolderData();
                        adFolderData.LinkedToTemplate = true;
                        adFolderData.Synced           = false;
                        adFolderData.Folder           = elcfolder;
                        if (!getFoldersOnly)
                        {
                            adFolderData.FolderSettings = AdFolderReader.FetchFolderContentSettings(elcfolder);
                        }
                        list.Add(adFolderData);
                    }
                }
            }
            return(list);
        }
Exemplo n.º 25
0
        internal static string GenerateUniqueRoleAssignmentName(IConfigurationSession configurationSession, ADObjectId orgContainerId, string roleName, string roleAssigneeName, RoleAssignmentDelegationType roleAssignmentDelegationType, Task.TaskVerboseLoggingDelegate writeVerbose)
        {
            if (configurationSession == null)
            {
                throw new ArgumentNullException("configurationSession");
            }
            if (orgContainerId == null)
            {
                throw new ArgumentNullException("orgContainerId");
            }
            string text = roleName + "-" + roleAssigneeName;

            if (roleAssignmentDelegationType != RoleAssignmentDelegationType.Regular)
            {
                text += "-Delegating";
            }
            text = text.Trim();
            if (text.Length > 64)
            {
                text = text.Substring(0, 64).Trim();
            }
            if (writeVerbose == null)
            {
                throw new ArgumentNullException("writeVerbose");
            }
            ADObjectId descendantId = orgContainerId.GetDescendantId(ExchangeRoleAssignment.RdnContainer);
            string     text2        = text;

            if (text2.Length > 61)
            {
                text2 = text2.Substring(0, 61).Trim();
            }
            int num = 1;

            for (;;)
            {
                QueryFilter filter = new ComparisonFilter(ComparisonOperator.Equal, ADObjectSchema.Name, text);
                writeVerbose(TaskVerboseStringHelper.GetFindDataObjectsVerboseString(configurationSession, typeof(ExchangeRoleAssignment), filter, descendantId, false));
                ExchangeRoleAssignment[] array = configurationSession.Find <ExchangeRoleAssignment>(descendantId, QueryScope.OneLevel, filter, null, 1);
                if (array.Length == 0)
                {
                    break;
                }
                text = text2 + "-" + num.ToString();
                num++;
                if (num >= 100)
                {
                    return(text);
                }
            }
            return(text);
        }
Exemplo n.º 26
0
        public virtual void GetTenantSharePointUrls(IConfigurationSession configurationSession, out Uri spRootUrl, out Uri spAdminUrl)
        {
            ArgumentValidator.ThrowIfNull("configurationSession", configurationSession);
            spRootUrl  = null;
            spAdminUrl = null;
            string organizationIdKey = this.GetOrganizationIdKey(configurationSession);

            if (!string.IsNullOrEmpty(organizationIdKey))
            {
                spRootUrl  = this.GetUrlFromConfigFile("UP_SPRootSite_" + organizationIdKey);
                spAdminUrl = this.GetUrlFromConfigFile("UP_SPAdminSite_" + organizationIdKey);
            }
        }
Exemplo n.º 27
0
        protected override PerTenantPolicyNudgeRulesCollection.PolicyNudgeRules Read(IConfigurationSession session)
        {
            ADPagedReader <PolicyTipMessageConfig> adpagedReader           = session.FindPaged <PolicyTipMessageConfig>(PerTenantPolicyNudgeRulesCollection.GetPolicyTipMessageConfigsContainerId(session), QueryScope.SubTree, null, null, 0);
            IEnumerable <PolicyTipMessageConfig>   tenantPolicyTipMessages = adpagedReader.ReadAllPages();
            ADPagedReader <TransportRule>          adpagedReader2          = session.FindPaged <TransportRule>(PerTenantPolicyNudgeRulesCollection.GetPolicyNudgeRuleContainerId(session), QueryScope.SubTree, null, PerTenantPolicyNudgeRulesCollection.PriorityOrder, 0);
            PolicyNudgeRuleParser         parser = PolicyNudgeRuleParser.Instance;
            IEnumerable <PolicyNudgeRule> tenantPolicyNudgeRules = (from rule in adpagedReader2.ReadAllPages()
                                                                    select parser.GetRule(rule.Xml, rule.Name, rule.WhenChangedUTC ?? (rule.WhenCreatedUTC ?? DateTime.MinValue)) into rule
                                                                    where rule != null
                                                                    select rule).ToList <PolicyNudgeRule>();

            return(new PerTenantPolicyNudgeRulesCollection.PolicyNudgeRules(tenantPolicyNudgeRules, new PerTenantPolicyNudgeRulesCollection.PolicyTipMessages(tenantPolicyTipMessages)));
        }
Exemplo n.º 28
0
        protected override void WriteResult(IConfigurable dataObject)
        {
            TransportConfigContainer transportConfigContainer = (TransportConfigContainer)dataObject;

            base.WriteResult(transportConfigContainer);
            IConfigurationSession configurationSession = (IConfigurationSession)base.DataSession;

            MessageDeliveryGlobalSettings[] array = configurationSession.Find <MessageDeliveryGlobalSettings>(configurationSession.GetOrgContainerId(), QueryScope.SubTree, new ComparisonFilter(ComparisonOperator.Equal, ADObjectSchema.Name, MessageDeliveryGlobalSettings.DefaultName), null, 1);
            if (array.Length > 0 && (array[0].MaxReceiveSize != transportConfigContainer.MaxReceiveSize || array[0].MaxSendSize != transportConfigContainer.MaxSendSize || array[0].MaxRecipientEnvelopeLimit != transportConfigContainer.MaxRecipientEnvelopeLimit) && !this.IsPureE12Environment())
            {
                this.WriteWarning(Strings.WarningMessageSizeRestrictionOutOfSync);
            }
        }
Exemplo n.º 29
0
        private static Uri GetRootSiteUrlFromExchangeAD(OrganizationId organizationId)
        {
            IConfigurationSession tenantOrTopologyConfigurationSession = DirectorySessionFactory.Default.GetTenantOrTopologyConfigurationSession(ConsistencyMode.IgnoreInvalid, ADSessionSettings.FromOrganizationIdWithoutRbacScopesServiceOnly(organizationId), 146, "GetRootSiteUrlFromExchangeAD", "f:\\15.00.1497\\sources\\dev\\UnifiedGroups\\src\\UnifiedGroups\\SharePointNotification\\SharePointUrl.cs");
            ADObjectId            orgContainerId       = tenantOrTopologyConfigurationSession.GetOrgContainerId();
            ADOrganizationConfig  adorganizationConfig = tenantOrTopologyConfigurationSession.Read <ADOrganizationConfig>(orgContainerId);

            if (adorganizationConfig == null)
            {
                SharePointUrl.Tracer.TraceError <OrganizationId>(0L, "ADOrganizationConfig not found for {0}", organizationId);
                return(null);
            }
            return(adorganizationConfig.SharePointUrl);
        }
Exemplo n.º 30
0
        public static bool ValidateDDLArguments(IConfigurationSession session, string cluster, DataDefinitionType defType, DbObjectType objType,
                                                DdlConfiguration parsedConf, out ICloneable configuration,
                                                out Dictionary <string, object> confValues)
        {
            ConfigurationValidator validator = new ConfigurationValidator(session, cluster, defType, objType);

            if (validator.Validate(ToEqualityComparerDictionary(parsedConf.Configuration),
                                   out configuration, out confValues))
            {
                return(true);
            }
            return(false);
        }