示例#1
0
        protected override IConfigDataProvider CreateSession()
        {
            this.ResolveCurrentOrganization();
            ADUser discoveryMailbox = MailboxDataProvider.GetDiscoveryMailbox(base.TenantGlobalCatalogSession);

            return(new UnifiedPolicySyncNotificationDataProvider(base.SessionSettings, discoveryMailbox, "Remove-CompliancePolicySyncNotification"));
        }
示例#2
0
        public static ADUser GetTenantArbitrationMailbox(OrganizationId organizationId)
        {
            ADSessionSettings sessionSettings = ADSessionSettings.FromOrganizationIdWithoutRbacScopes(ADSystemConfigurationSession.GetRootOrgContainerIdForLocalForest(), organizationId, null, false);
            IRecipientSession tenantOrRootOrgRecipientSession = DirectorySessionFactory.Default.GetTenantOrRootOrgRecipientSession(true, ConsistencyMode.IgnoreInvalid, sessionSettings, 287, "GetTenantArbitrationMailbox", "f:\\15.00.1497\\sources\\dev\\Management\\src\\Management\\AdminAuditLog\\AdminAuditLogHelper.cs");

            return(MailboxDataProvider.GetDiscoveryMailbox(tenantOrRootOrgRecipientSession));
        }
示例#3
0
        public static ADUser GetSystemMailbox(IRecipientSession recipientSession, Task task)
        {
            if (recipientSession == null)
            {
                throw new ArgumentNullException("recipientSession");
            }
            if (task == null)
            {
                throw new ArgumentNullException("task");
            }
            ADUser result = null;

            try
            {
                result = MailboxDataProvider.GetDiscoveryMailbox(recipientSession);
            }
            catch (ObjectNotFoundException exception)
            {
                task.WriteError(exception, ErrorCategory.ReadError, null);
            }
            catch (NonUniqueRecipientException exception2)
            {
                task.WriteError(exception2, ErrorCategory.ReadError, null);
            }
            return(result);
        }
示例#4
0
        internal static MailboxSession GetMailboxSession(OrganizationId organizationId, string action)
        {
            ADSessionSettings sessionSettings = organizationId.ToADSessionSettings();
            IRecipientSession tenantOrRootOrgRecipientSession = DirectorySessionFactory.Default.GetTenantOrRootOrgRecipientSession(true, ConsistencyMode.FullyConsistent, sessionSettings, 99, "GetMailboxSession", "f:\\15.00.1497\\sources\\dev\\Management\\src\\Management\\AuditLogSearch\\AuditLogSearchDataProvider.cs");
            ADUser            discoveryMailbox = MailboxDataProvider.GetDiscoveryMailbox(tenantOrRootOrgRecipientSession);

            return(AuditLogSearchDataProviderBase.GetMailboxSession(discoveryMailbox, action));
        }
            protected override TenantInfoProvider CreateOnCacheMiss(Guid key, ref bool shouldAdd)
            {
                OrganizationId    scopingOrganizationId           = OrganizationId.FromExternalDirectoryOrganizationId(key);
                ADSessionSettings adsessionSettings               = ADSessionSettings.FromOrganizationIdWithoutRbacScopesServiceOnly(scopingOrganizationId);
                IRecipientSession tenantOrRootOrgRecipientSession = DirectorySessionFactory.Default.GetTenantOrRootOrgRecipientSession(null, true, ConsistencyMode.PartiallyConsistent, adsessionSettings, 99, "CreateOnCacheMiss", "f:\\15.00.1497\\sources\\dev\\data\\src\\storage\\UnifiedPolicy\\TenantInfoProviderFactory.cs");
                ADUser            discoveryMailbox     = MailboxDataProvider.GetDiscoveryMailbox(tenantOrRootOrgRecipientSession);
                ExchangePrincipal syncMailboxPrincipal = ExchangePrincipal.FromADUser(adsessionSettings, discoveryMailbox);

                return(new TenantInfoProvider(syncMailboxPrincipal));
            }
示例#6
0
        public static ADRecipient GetSystemMailbox(ADObject dataObject, IConfigurationSession configSession)
        {
            if (dataObject == null)
            {
                throw new ArgumentNullException("dataObject");
            }
            if (configSession == null)
            {
                throw new ArgumentNullException("configSession");
            }
            IRecipientSession recipientSessionScopedToOrganization = Utility.GetRecipientSessionScopedToOrganization(dataObject.OrganizationId, false);
            ADRecipient       discoveryMailbox = MailboxDataProvider.GetDiscoveryMailbox(recipientSessionScopedToOrganization);

            ExAssert.RetailAssert(dataObject.OrganizationId.Equals(discoveryMailbox.OrganizationId), "The organization ids of the data object and system mailbox do not match.");
            return(discoveryMailbox);
        }
示例#7
0
        // Token: 0x06000143 RID: 323 RVA: 0x000087B8 File Offset: 0x000069B8
        private ExchangePrincipal GetTenantMailbox(OrganizationId organizationId)
        {
            if (!(organizationId == null) && !(organizationId == OrganizationId.ForestWideOrgId))
            {
                string name = organizationId.OrganizationalUnit.Name;
            }
            ExchangePrincipal result          = null;
            ADSessionSettings sessionSettings = ADSessionSettings.FromOrganizationIdWithoutRbacScopes(ADSystemConfigurationSession.GetRootOrgContainerIdForLocalForest(), organizationId, null, false);
            IRecipientSession tenantOrRootOrgRecipientSession = DirectorySessionFactory.Default.GetTenantOrRootOrgRecipientSession(true, ConsistencyMode.PartiallyConsistent, sessionSettings, 513, "GetTenantMailbox", "f:\\15.00.1497\\sources\\dev\\MailboxAssistants\\src\\assistants\\elc\\AdDataCache.cs");

            try
            {
                result = ExchangePrincipal.FromADUser(MailboxDataProvider.GetDiscoveryMailbox(tenantOrRootOrgRecipientSession), null);
            }
            catch (ObjectNotFoundException ex)
            {
                throw new DataSourceOperationException(ex.LocalizedString, ex);
            }
            return(result);
        }
示例#8
0
        internal static MailboxDataProvider GetMailboxDataProvider(ADObjectId rootOrg, OrganizationId currentOrg, OrganizationId executingOrg, Task.TaskErrorLoggingDelegate writeErrorDelegate)
        {
            MailboxDataProvider result = null;

            try
            {
                ADSessionSettings sessionSettings = ADSessionSettings.FromOrganizationIdWithoutRbacScopes(rootOrg, currentOrg, executingOrg, true);
                IRecipientSession tenantOrRootOrgRecipientSession = DirectorySessionFactory.Default.GetTenantOrRootOrgRecipientSession(true, ConsistencyMode.IgnoreInvalid, sessionSettings, 694, "GetMailboxDataProvider", "f:\\15.00.1497\\sources\\dev\\Management\\src\\Management\\Search\\Utils.cs");
                result = new MailboxDataProvider(MailboxDataProvider.GetDiscoveryMailbox(tenantOrRootOrgRecipientSession), tenantOrRootOrgRecipientSession);
            }
            catch (ObjectNotFoundException exception)
            {
                writeErrorDelegate(exception, ErrorCategory.WriteError, null);
            }
            catch (NonUniqueRecipientException exception2)
            {
                writeErrorDelegate(exception2, ErrorCategory.WriteError, null);
            }
            return(result);
        }
        public static ExchangePrincipal GetTenantMailbox(OrganizationId organizationId)
        {
            string            organizationKey   = TenantStoreDataProvider.GetOrganizationKey(organizationId);
            ExchangePrincipal exchangePrincipal = null;

            if (!TenantStoreDataProvider.exchangePrincipalCache.TryGetValue(organizationKey, out exchangePrincipal))
            {
                ADSessionSettings sessionSettings = ADSessionSettings.FromOrganizationIdWithoutRbacScopes(ADSystemConfigurationSession.GetRootOrgContainerIdForLocalForest(), organizationId, null, false);
                IRecipientSession tenantOrRootOrgRecipientSession = DirectorySessionFactory.Default.GetTenantOrRootOrgRecipientSession(true, ConsistencyMode.IgnoreInvalid, sessionSettings, 67, "GetTenantMailbox", "f:\\15.00.1497\\sources\\dev\\data\\src\\storage\\Management\\EwsDriver\\TenantStoreDataProvider.cs");
                try
                {
                    exchangePrincipal = ExchangePrincipal.FromADUser(MailboxDataProvider.GetDiscoveryMailbox(tenantOrRootOrgRecipientSession), null);
                }
                catch (ObjectNotFoundException ex)
                {
                    throw new DataSourceOperationException(ex.LocalizedString, ex);
                }
                TenantStoreDataProvider.exchangePrincipalCache.Add(organizationKey, exchangePrincipal);
            }
            return(exchangePrincipal);
        }
        protected override void InternalProcessRecord()
        {
            ADUser                discoveryMailbox  = MailboxDataProvider.GetDiscoveryMailbox((IRecipientSession)base.DataSession);
            ExchangePrincipal     exchangePrincipal = ExchangePrincipal.FromADUser(discoveryMailbox, null);
            List <SyncChangeInfo> list = null;

            if (this.SyncChangeInfos != null && this.SyncChangeInfos.Count > 0)
            {
                list = new List <SyncChangeInfo>();
                foreach (string input in this.SyncChangeInfos)
                {
                    list.Add(new SyncChangeInfo(input));
                }
            }
            SyncNotificationResult syncNotificationResult = RpcClientWrapper.NotifySyncChanges(this.Identity, exchangePrincipal.MailboxInfo.Location.ServerFqdn, new Guid(this.organizationId.ToExternalDirectoryOrganizationId()), this.SyncSvcUrl, this.FullSync, this.SyncNow, (list != null) ? list.ToArray() : null);

            if (!syncNotificationResult.Success)
            {
                base.WriteError(syncNotificationResult.Error, ErrorCategory.WriteError, syncNotificationResult);
            }
            base.WriteObject((UnifiedPolicySyncNotification)syncNotificationResult.ResultObject);
        }
示例#11
0
        protected override ADUser CreateOnCacheMiss(Guid key, ref bool shouldAdd)
        {
            IRecipientSession tenantOrRootOrgRecipientSession = DirectorySessionFactory.Default.GetTenantOrRootOrgRecipientSession(null, true, ConsistencyMode.PartiallyConsistent, ADSessionSettings.FromExternalDirectoryOrganizationId(key), 42, "CreateOnCacheMiss", "f:\\15.00.1497\\sources\\dev\\data\\src\\storage\\UnifiedPolicy\\SyncArbitrationMailboxADObjectCache.cs");

            return(MailboxDataProvider.GetDiscoveryMailbox(tenantOrRootOrgRecipientSession));
        }