Example #1
0
        internal static Guid?ResolveOrganizationGuid(OrganizationIdParameter organization, OrganizationId currentOrganizationId, OrganizationId executingUserOrganizationId, out Guid?tenantExternalDirectoryId)
        {
            tenantExternalDirectoryId = null;
            if (organization == null)
            {
                return(null);
            }
            ADObjectId            rootOrgContainerIdForLocalForest = ADSystemConfigurationSession.GetRootOrgContainerIdForLocalForest();
            ADSessionSettings     sessionSettings = ADSessionSettings.FromOrganizationIdWithoutRbacScopes(rootOrgContainerIdForLocalForest, currentOrganizationId, executingUserOrganizationId, false);
            IConfigurationSession tenantOrTopologyConfigurationSession = DirectorySessionFactory.Default.GetTenantOrTopologyConfigurationSession(null, true, ConsistencyMode.PartiallyConsistent, null, sessionSettings, ConfigScopes.TenantSubTree, 50, "ResolveOrganizationGuid", "f:\\15.00.1497\\sources\\dev\\Management\\src\\Management\\ReportingTask\\Common\\ADHelper.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()));
                }
            }
            tenantExternalDirectoryId = new Guid?(Guid.Parse(adorganizationalUnit.OrganizationId.ToExternalDirectoryOrganizationId()));
            return(new Guid?(adorganizationalUnit.OrganizationId.OrganizationalUnit.ObjectGuid));
        }
Example #2
0
        private void ResolveOrganization()
        {
            ADSessionSettings     sessionSettings = ADSessionSettings.FromOrganizationIdWithoutRbacScopes(this.rootOrgId, base.CurrentOrganizationId, base.ExecutingUserOrganizationId, true);
            IConfigurationSession tenantOrTopologyConfigurationSession = DirectorySessionFactory.Default.GetTenantOrTopologyConfigurationSession(this.DomainController, true, ConsistencyMode.PartiallyConsistent, null, sessionSettings, ConfigScopes.TenantSubTree, 395, "ResolveOrganization", "f:\\15.00.1497\\sources\\dev\\Management\\src\\Management\\DirectorySetup\\SetupTaskBase.cs");

            tenantOrTopologyConfigurationSession.UseConfigNC = false;
            IEnumerable <ADOrganizationalUnit> objects = this.Organization.GetObjects <ADOrganizationalUnit>(null, tenantOrTopologyConfigurationSession);

            using (IEnumerator <ADOrganizationalUnit> enumerator = objects.GetEnumerator())
            {
                if (enumerator.MoveNext())
                {
                    this.organization = enumerator.Current;
                    if (enumerator.MoveNext())
                    {
                        base.ThrowTerminatingError(new ArgumentException(Strings.ErrorOrganizationNotUnique(this.Organization.ToString())), ErrorCategory.InvalidArgument, null);
                    }
                }
                else
                {
                    base.ThrowTerminatingError(new ArgumentException(Strings.ErrorOrganizationNotFound(this.Organization.ToString())), ErrorCategory.InvalidArgument, null);
                }
            }
            base.CurrentOrganizationId = this.organization.OrganizationId;
        }
Example #3
0
        private ADUser GetUser()
        {
            ADSessionSettings sessionSettings = ADSessionSettings.FromOrganizationIdWithoutRbacScopes(ADSystemConfigurationSession.GetRootOrgContainerIdForLocalForest(), OrganizationId.ForestWideOrgId, null, false);
            IRecipientSession tenantOrRootOrgRecipientSession = DirectorySessionFactory.Default.GetTenantOrRootOrgRecipientSession(this.DomainController, true, ConsistencyMode.PartiallyConsistent, null, sessionSettings, ConfigScopes.TenantSubTree, 433, "GetUser", "f:\\15.00.1497\\sources\\dev\\Management\\src\\Management\\SystemConfigurationTasks\\Federation\\TestFederationTrust.cs");

            return((ADUser)base.GetDataObject <ADUser>(this.UserIdentity, tenantOrRootOrgRecipientSession, null, new LocalizedString?(Strings.ErrorRecipientNotFound(this.UserIdentity.ToString())), new LocalizedString?(Strings.ErrorRecipientNotUnique(this.UserIdentity.ToString()))));
        }
Example #4
0
        // Token: 0x0600105C RID: 4188 RVA: 0x0005F8C4 File Offset: 0x0005DAC4
        private IRecipientSession CreateWritableSession(OrganizationId orgId)
        {
            ExAssert.RetailAssert(orgId == OrganizationId.ForestWideOrgId, "organizationId should be ForestWideOrgId");
            ADSessionSettings sessionSettings = ADSessionSettings.FromOrganizationIdWithoutRbacScopes(ADSystemConfigurationSession.GetRootOrgContainerIdForLocalForest(), orgId, null, false);

            return(DirectorySessionFactory.Default.GetTenantOrRootOrgRecipientSession(null, null, 0, false, ConsistencyMode.IgnoreInvalid, null, sessionSettings, 474, "CreateWritableSession", "f:\\15.00.1497\\sources\\dev\\MailboxAssistants\\src\\assistants\\DirectoryProcessor\\DtmfMapGenerator\\DtmfMapGenerator.cs"));
        }
Example #5
0
        private Dictionary <OrganizationId, ADRuleStorageManager> GetRuleCollections(IEnumerable <TransportRule> rules)
        {
            Dictionary <OrganizationId, ADRuleStorageManager> dictionary = new Dictionary <OrganizationId, ADRuleStorageManager>();

            foreach (TransportRule transportRule in rules)
            {
                if (!dictionary.ContainsKey(transportRule.OrganizationId))
                {
                    ADSessionSettings     sessionSettings = ADSessionSettings.FromOrganizationIdWithoutRbacScopes(base.RootOrgContainerId, transportRule.OrganizationId, base.ExecutingUserOrganizationId, false);
                    IConfigurationSession tenantOrTopologyConfigurationSession = DirectorySessionFactory.Default.GetTenantOrTopologyConfigurationSession(base.DomainController, false, ConsistencyMode.PartiallyConsistent, sessionSettings, 169, "GetRuleCollections", "f:\\15.00.1497\\sources\\dev\\Management\\src\\Management\\SystemConfigurationTasks\\MessageHygiene\\HygieneConfiguration\\GetHygieneFilterRuleTaskBase.cs");
                    ADRuleStorageManager  adruleStorageManager;
                    try
                    {
                        adruleStorageManager = new ADRuleStorageManager(this.ruleCollectionName, tenantOrTopologyConfigurationSession);
                        adruleStorageManager.LoadRuleCollectionWithoutParsing();
                    }
                    catch (RuleCollectionNotInAdException)
                    {
                        continue;
                    }
                    dictionary.Add(transportRule.OrganizationId, adruleStorageManager);
                }
            }
            return(dictionary);
        }
 internal static OrganizationId ResolveOrganization(Task task, OrganizationIdParameter organization, ADObjectId rootOrgContainerId, LocalizedString cannotResolveOrganizationMessage)
 {
     if (organization != null)
     {
         ADSessionSettings     sessionSettings = ADSessionSettings.FromOrganizationIdWithoutRbacScopes(rootOrgContainerId, task.CurrentOrganizationId, task.ExecutingUserOrganizationId, true);
         IConfigurationSession tenantOrTopologyConfigurationSession = DirectorySessionFactory.Default.GetTenantOrTopologyConfigurationSession(ConsistencyMode.PartiallyConsistent, ADSessionSettings.RescopeToSubtree(sessionSettings), 371, "ResolveOrganization", "f:\\15.00.1497\\sources\\dev\\Management\\src\\Management\\Deployment\\OrganizationTaskHelper.cs");
         tenantOrTopologyConfigurationSession.UseConfigNC = false;
         ADOrganizationalUnit oufromOrganizationId = OrganizationTaskHelper.GetOUFromOrganizationId(organization, tenantOrTopologyConfigurationSession, new Task.TaskErrorLoggingDelegate(task.WriteError), true);
         if (oufromOrganizationId == null)
         {
             task.WriteError(new ArgumentException(cannotResolveOrganizationMessage), ErrorCategory.InvalidOperation, null);
             return(null);
         }
         return(oufromOrganizationId.OrganizationId);
     }
     else
     {
         if (task.CurrentOrganizationId == OrganizationId.ForestWideOrgId)
         {
             task.WriteError(new ArgumentException(cannotResolveOrganizationMessage), ErrorCategory.InvalidOperation, null);
             return(null);
         }
         return(task.CurrentOrganizationId);
     }
 }
Example #7
0
        protected override void InternalStateReset()
        {
            TaskLogger.LogEnter();
            base.InternalStateReset();
            OrganizationId organizationId = null;

            if (OrganizationId.ForestWideOrgId.Equals(base.ExecutingUserOrganizationId))
            {
                if (this.Identity == null)
                {
                    base.WriteError(new InvalidOperationException(Strings.ErrorNeedOrgIdentity), (ErrorCategory)1000, null);
                }
                else
                {
                    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, 109, "InternalStateReset", "f:\\15.00.1497\\sources\\dev\\Management\\src\\Management\\Deployment\\EnableConfigCustomizations.cs");
                    tenantOrTopologyConfigurationSession.UseConfigNC = false;
                    ADOrganizationalUnit oufromOrganizationId = OrganizationTaskHelper.GetOUFromOrganizationId(this.Identity, tenantOrTopologyConfigurationSession, new Task.TaskErrorLoggingDelegate(base.WriteError), true);
                    organizationId = oufromOrganizationId.OrganizationId;
                }
            }
            else
            {
                organizationId = base.ExecutingUserOrganizationId;
            }
            this.orgIdParam = new OrganizationIdParameter(organizationId.OrganizationalUnit);
            base.LoadTenantCU();
            TaskLogger.LogExit();
        }
Example #8
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));
        }
 protected override void WriteResult(IConfigurable dataObject)
 {
     TaskLogger.LogEnter(new object[]
     {
         dataObject.Identity,
         dataObject
     });
     if (this.Status)
     {
         RecipientEnforcementProvisioningPolicy recipientEnforcementProvisioningPolicy = dataObject as RecipientEnforcementProvisioningPolicy;
         if (recipientEnforcementProvisioningPolicy != null)
         {
             ADSessionSettings     sessionSettings = ADSessionSettings.FromOrganizationIdWithoutRbacScopes(base.RootOrgContainerId, base.CurrentOrganizationId, base.ExecutingUserOrganizationId, false);
             IConfigurationSession configSession   = DirectorySessionFactory.Default.CreateTenantConfigurationSession(true, ConsistencyMode.PartiallyConsistent, sessionSettings, 74, "WriteResult", "f:\\15.00.1497\\sources\\dev\\Management\\src\\Management\\ProvisioningTasks\\Recipient\\GetRecipientEnforcementProvisioningPolicy.cs");
             recipientEnforcementProvisioningPolicy.MailboxCount          = new int?(SystemAddressListMemberCount.GetCount(configSession, base.CurrentOrganizationId, "All Mailboxes(VLV)", false));
             recipientEnforcementProvisioningPolicy.MailUserCount         = new int?(SystemAddressListMemberCount.GetCount(configSession, base.CurrentOrganizationId, "All Mail Users(VLV)", false));
             recipientEnforcementProvisioningPolicy.ContactCount          = new int?(SystemAddressListMemberCount.GetCount(configSession, base.CurrentOrganizationId, "All Contacts(VLV)", false));
             recipientEnforcementProvisioningPolicy.DistributionListCount = new int?(SystemAddressListMemberCount.GetCount(configSession, base.CurrentOrganizationId, "All Groups(VLV)", false));
             try
             {
                 recipientEnforcementProvisioningPolicy.TeamMailboxCount         = new int?(SystemAddressListMemberCount.GetCount(configSession, base.CurrentOrganizationId, "TeamMailboxes(VLV)", false));
                 recipientEnforcementProvisioningPolicy.PublicFolderMailboxCount = new int?(SystemAddressListMemberCount.GetCount(configSession, base.CurrentOrganizationId, "PublicFolderMailboxes(VLV)", false));
                 recipientEnforcementProvisioningPolicy.MailPublicFolderCount    = new int?(SystemAddressListMemberCount.GetCount(configSession, base.CurrentOrganizationId, "MailPublicFolders(VLV)", false));
             }
             catch (ADNoSuchObjectException)
             {
             }
         }
     }
     base.WriteResult(dataObject);
     TaskLogger.LogExit();
 }
Example #10
0
 private void InitializeForwardingAddress(UMIPGateway gw)
 {
     if (gw.GlobalCallRoutingScheme == UMGlobalCallRoutingScheme.GatewayGuid)
     {
         Guid guid = gw.Guid;
         ITopologyConfigurationSession topologyConfigurationSession = DirectorySessionFactory.Default.CreateTopologyConfigurationSession(ConsistencyMode.IgnoreInvalid, ADSessionSettings.FromRootOrgScopeSet(), 111, "InitializeForwardingAddress", "f:\\15.00.1497\\sources\\dev\\Management\\src\\Management\\um\\GetUMIPGateway.cs");
         Server          server = topologyConfigurationSession.FindLocalServer();
         List <UMServer> compatibleUMRpcServers = Utility.GetCompatibleUMRpcServers(server.ServerSite, null, topologyConfigurationSession);
         string          text = string.Empty;
         using (List <UMServer> .Enumerator enumerator = compatibleUMRpcServers.GetEnumerator())
         {
             if (enumerator.MoveNext())
             {
                 UMServer umserver = enumerator.Current;
                 text = umserver.UMForwardingAddressTemplate;
             }
         }
         ADSessionSettings         sessionSettings = ADSessionSettings.FromOrganizationIdWithoutRbacScopes(ADSystemConfigurationSession.GetRootOrgContainerIdForLocalForest(), gw.OrganizationId, null, false);
         IConfigurationSession     tenantOrTopologyConfigurationSession = DirectorySessionFactory.Default.GetTenantOrTopologyConfigurationSession(true, ConsistencyMode.IgnoreInvalid, sessionSettings, 139, "InitializeForwardingAddress", "f:\\15.00.1497\\sources\\dev\\Management\\src\\Management\\um\\GetUMIPGateway.cs");
         ExchangeConfigurationUnit exchangeConfigurationUnit            = tenantOrTopologyConfigurationSession.Read <ExchangeConfigurationUnit>(gw.ConfigurationUnit);
         if (!string.IsNullOrEmpty(text) && exchangeConfigurationUnit != null && !string.IsNullOrEmpty(exchangeConfigurationUnit.ExternalDirectoryOrganizationId))
         {
             gw.ForwardingAddress = string.Format(CultureInfo.InvariantCulture, text, new object[]
             {
                 exchangeConfigurationUnit.ExternalDirectoryOrganizationId
             });
         }
     }
 }
        internal override IConfigurationSession CreateSession()
        {
            PartitionId       partitionIdByAcceptedDomainName = ADAccountPartitionLocator.GetPartitionIdByAcceptedDomainName(this.Organization.RawIdentity);
            ADSessionSettings sessionSettings = ADSessionSettings.FromOrganizationIdWithoutRbacScopes(ADSystemConfigurationSession.GetRootOrgContainerId(partitionIdByAcceptedDomainName.ForestFQDN, null, null), base.CurrentOrganizationId, base.ExecutingUserOrganizationId, false);

            return(DirectorySessionFactory.Default.GetTenantOrTopologyConfigurationSession(base.DomainController, false, ConsistencyMode.PartiallyConsistent, null, ADSessionSettings.RescopeToSubtree(sessionSettings), 480, "CreateSession", "f:\\15.00.1497\\sources\\dev\\Management\\src\\Management\\Deployment\\AddSecondaryDomainTask.cs"));
        }
Example #12
0
        private MailboxDatabase GetExecutingUserDatabase(ITopologyConfigurationSession topologyConfigSession)
        {
            this.WriteDebugInfo("Executing user:{0}", new object[]
            {
                this.ExecutingUser
            });
            ADObjectId        databaseId      = null;
            ADSessionSettings sessionSettings = ADSessionSettings.FromOrganizationIdWithoutRbacScopes(base.CurrentOrganizationId.OrganizationalUnit, base.CurrentOrganizationId, base.CurrentOrganizationId, true);
            IRecipientSession session         = DirectorySessionFactory.Default.CreateTenantRecipientSession(true, ConsistencyMode.PartiallyConsistent, sessionSettings, 1098, "GetExecutingUserDatabase", "f:\\15.00.1497\\sources\\dev\\Management\\src\\Management\\RecipientTasks\\GroupMailbox\\NewGroupMailbox.cs");
            Exception         ex = GroupMailboxContext.ExecuteADOperationAndHandleException(delegate
            {
                ADUser aduser = (ADUser)this.GetDataObject <ADUser>(this.ExecutingUser, session, this.CurrentOrganizationId.OrganizationalUnit, null, new LocalizedString?(Strings.ErrorRecipientNotFound(this.ExecutingUser.ToString())), new LocalizedString?(Strings.ErrorRecipientNotUnique(this.ExecutingUser.ToString())), ExchangeErrorCategory.Client);
                databaseId    = aduser.Database;
                this.WriteDebugInfo("Located local database for the executing user:{0}", new object[]
                {
                    databaseId
                });
            });

            if (ex != null)
            {
                this.WriteDebugInfo("Unable to find database belonging to the executing user because:{0}", new object[]
                {
                    ex
                });
            }
            if (databaseId != null)
            {
                return(topologyConfigSession.Read <MailboxDatabase>(databaseId));
            }
            return(null);
        }
Example #13
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);
 }
Example #14
0
 public bool InitializeIfNeeded(HostId identity)
 {
     if (this.HostId == HostId.NotInitialized)
     {
         lock (this.initLock)
         {
             if (this.HostId == HostId.NotInitialized)
             {
                 CommonDiagnosticsLog.Initialize(identity);
                 ADSessionSettings             sessionSettings = ADSessionSettings.FromOrganizationIdWithoutRbacScopes(ADSystemConfigurationSession.GetRootOrgContainerIdForLocalForest(), OrganizationId.ForestWideOrgId, null, false);
                 ITopologyConfigurationSession topologyConfigurationSession = DirectorySessionFactory.Default.CreateTopologyConfigurationSession(ConsistencyMode.IgnoreInvalid, sessionSettings, 500, "InitializeIfNeeded", "f:\\15.00.1497\\sources\\dev\\infoworker\\src\\common\\MessageTracking\\ServerCache.cs");
                 Server server = topologyConfigurationSession.FindLocalServer();
                 if (server == null || string.IsNullOrEmpty(server.Fqdn) || string.IsNullOrEmpty(server.Domain))
                 {
                     TraceWrapper.SearchLibraryTracer.TraceError <string, string>(this.GetHashCode(), "Failed to get local server, or it is invalid Fqdn={0}, Domain={1}", (server == null) ? "<null>" : server.Fqdn, (server == null) ? "<null>" : server.Domain);
                     return(false);
                 }
                 this.localServer = server;
                 ADSite localSite = topologyConfigurationSession.GetLocalSite();
                 if (localSite == null)
                 {
                     TraceWrapper.SearchLibraryTracer.TraceError(this.GetHashCode(), "Failed to get local site.", new object[0]);
                     return(false);
                 }
                 this.localServerSiteId = localSite.Id;
                 this.HostId            = identity;
             }
         }
         return(true);
     }
     return(true);
 }
Example #15
0
        // Token: 0x06000577 RID: 1399 RVA: 0x00014FA0 File Offset: 0x000131A0
        private void LoadRoleAssignments()
        {
            if (!typeof(TDataObject).IsAssignableFrom(typeof(ADUser)))
            {
                this.roleAssignments = null;
                return;
            }
            TDataObject dataObject = base.DataObject;
            ADObjectId  adobjectId;

            if (!dataObject.OrganizationId.Equals(OrganizationId.ForestWideOrgId))
            {
                TDataObject dataObject2 = base.DataObject;
                adobjectId = dataObject2.OrganizationId.ConfigurationUnit;
            }
            else
            {
                adobjectId = ADSystemConfigurationSession.GetRootOrgContainerIdForLocalForest();
            }
            ADObjectId            adobjectId2     = adobjectId;
            ADObjectId            rootOrgId       = adobjectId2;
            TDataObject           dataObject3     = base.DataObject;
            ADSessionSettings     sessionSettings = ADSessionSettings.FromOrganizationIdWithoutRbacScopes(rootOrgId, dataObject3.OrganizationId, base.ExecutingUserOrganizationId, false);
            IConfigurationSession tenantOrTopologyConfigurationSession = DirectorySessionFactory.Default.GetTenantOrTopologyConfigurationSession(base.TenantGlobalCatalogSession.DomainController, false, ConsistencyMode.PartiallyConsistent, sessionSettings, 340, "LoadRoleAssignments", "f:\\15.00.1497\\sources\\dev\\Configuration\\src\\ObjectModel\\BaseTasks\\RemoveAdObjectTask.cs");
            IConfigurationSession configurationSession = tenantOrTopologyConfigurationSession;

            ADObjectId[] array       = new ADObjectId[1];
            ADObjectId[] array2      = array;
            int          num         = 0;
            TDataObject  dataObject4 = base.DataObject;

            array2[num]          = dataObject4.Id;
            this.roleAssignments = configurationSession.FindRoleAssignmentsByUserIds(array, false);
        }
Example #16
0
        protected override void InternalValidate()
        {
            IConfigurationSession configurationSession = (IConfigurationSession)base.DataSession;

            if (Server.IsSubscribedGateway(base.GlobalConfigSession))
            {
                base.WriteError(new CannotRunOnSubscribedEdgeException(), ErrorCategory.InvalidOperation, null);
            }
            base.InternalValidate();
            ADSessionSettings             sessionSettings = ADSessionSettings.FromOrganizationIdWithoutRbacScopes(base.RootOrgContainerId, this.DataObject.OrganizationId, base.ExecutingUserOrganizationId, false);
            IConfigurationSession         tenantOrTopologyConfigurationSession = DirectorySessionFactory.Default.GetTenantOrTopologyConfigurationSession(this.ConfigurationSession.DomainController, true, ConsistencyMode.PartiallyConsistent, sessionSettings, 82, "InternalValidate", "f:\\15.00.1497\\sources\\dev\\Management\\src\\Management\\SystemConfigurationTasks\\MessageSecurity\\RemoteDomain\\SetRemoteDomain.cs");
            ITopologyConfigurationSession topologyConfigurationSession         = DirectorySessionFactory.Default.CreateTopologyConfigurationSession(this.ConfigurationSession.DomainController, true, ConsistencyMode.PartiallyConsistent, ADSessionSettings.FromRootOrgScopeSet(), 88, "InternalValidate", "f:\\15.00.1497\\sources\\dev\\Management\\src\\Management\\SystemConfigurationTasks\\MessageSecurity\\RemoteDomain\\SetRemoteDomain.cs");

            NewRemoteDomain.ValidateNoDuplicates(this.DataObject, tenantOrTopologyConfigurationSession, new Task.TaskErrorLoggingDelegate(base.WriteError));
            Server server = null;

            try
            {
                server = topologyConfigurationSession.ReadLocalServer();
            }
            catch (TransientException exception)
            {
                base.WriteError(exception, ErrorCategory.ResourceUnavailable, null);
            }
            if (server != null && server.IsEdgeServer && this.DataObject.IsModified(DomainContentConfigSchema.AcceptMessageTypes))
            {
                base.WriteError(new ArgumentException(Strings.ParameterNotApplicableToInstalledServerRoles("AllowedOOFType, AutoForwardEnabled, AutoReplyEnabled, DeliveryReportEnabled, IsInternal, NDREnabled, MFNEnabled, UseSimpleDisplayName, NDRDiagnosticInfoEnabled"), string.Empty), ErrorCategory.InvalidArgument, null);
            }
            if (this.TargetDeliveryDomain && (this.DataObject.DomainName.IncludeSubDomains || this.DataObject.DomainName.IsStar))
            {
                base.WriteError(new CannotSetTargetDeliveryDomainOnWildCardDomainsException(this.DataObject.DomainName.ToString()), ErrorCategory.InvalidArgument, this.Identity);
            }
        }
Example #17
0
 public static void SetResolveUsers(AdminAuditLogSearch searchObject, DataAccessHelper.GetDataObjectDelegate getDataObject, Task.TaskVerboseLoggingDelegate writeVerbose, Task.TaskWarningLoggingDelegate writeWarning)
 {
     if (searchObject.UserIdsUserInput != null && searchObject.UserIdsUserInput.Count > 0)
     {
         writeVerbose(Strings.VerboseStartResolvingUsers);
         ADObjectId        rootOrgContainerIdForLocalForest = ADSystemConfigurationSession.GetRootOrgContainerIdForLocalForest();
         ADSessionSettings sessionSettings = ADSessionSettings.FromOrganizationIdWithoutRbacScopes(rootOrgContainerIdForLocalForest, searchObject.OrganizationId, null, false);
         IRecipientSession tenantOrRootOrgRecipientSession = DirectorySessionFactory.Default.GetTenantOrRootOrgRecipientSession(true, ConsistencyMode.PartiallyConsistent, sessionSettings, 515, "SetResolveUsers", "f:\\15.00.1497\\sources\\dev\\Management\\src\\Management\\AdminAuditLog\\AdminAuditLogHelper.cs");
         tenantOrRootOrgRecipientSession.UseConfigNC = false;
         searchObject.UserIds       = new MultiValuedProperty <string>();
         searchObject.ResolvedUsers = new MultiValuedProperty <string>();
         foreach (SecurityPrincipalIdParameter securityPrincipalIdParameter in searchObject.UserIdsUserInput)
         {
             searchObject.UserIds.Add(securityPrincipalIdParameter.RawIdentity);
             bool flag = false;
             try
             {
                 ADRecipient adrecipient = (ADRecipient)getDataObject(securityPrincipalIdParameter, tenantOrRootOrgRecipientSession, null, null, new LocalizedString?(Strings.WarningSearchUserNotFound(securityPrincipalIdParameter.ToString())), new LocalizedString?(Strings.ErrorSearchUserNotUnique(securityPrincipalIdParameter.ToString())));
                 if (adrecipient.Id != null && adrecipient.Id.DomainId != null && !string.IsNullOrEmpty(adrecipient.Id.DomainId.Name))
                 {
                     string text = (string)adrecipient.propertyBag[IADSecurityPrincipalSchema.SamAccountName];
                     if (!string.IsNullOrEmpty(text))
                     {
                         searchObject.ResolvedUsers.Add(adrecipient.Id.DomainId.Name + "\\" + text);
                         flag = true;
                         writeVerbose(Strings.DebugResolvingDomainAccount(securityPrincipalIdParameter.ToString(), adrecipient.Id.DomainId.Name, text));
                     }
                 }
                 if (adrecipient.propertyBag[IADSecurityPrincipalSchema.Sid] != null)
                 {
                     string value = ((SecurityIdentifier)adrecipient.propertyBag[IADSecurityPrincipalSchema.Sid]).Value;
                     if (!string.IsNullOrEmpty(value))
                     {
                         searchObject.ResolvedUsers.Add(value);
                         flag = true;
                         writeVerbose(Strings.DebugResolvingUserSid(securityPrincipalIdParameter.ToString(), value));
                     }
                 }
                 if (adrecipient.Id != null && !string.IsNullOrEmpty(adrecipient.Id.ToString()))
                 {
                     searchObject.ResolvedUsers.Add(adrecipient.Id.ToString());
                     flag = true;
                     writeVerbose(Strings.DebugResolvingUserCN(securityPrincipalIdParameter.ToString(), adrecipient.Id.ToString()));
                 }
                 if (!flag)
                 {
                     writeWarning(Strings.WarningCannotResolveUser(securityPrincipalIdParameter.ToString()));
                     searchObject.ResolvedUsers.Add(securityPrincipalIdParameter.ToString());
                 }
             }
             catch (ManagementObjectNotFoundException)
             {
                 writeWarning(Strings.WarningSearchUserNotFound(securityPrincipalIdParameter.ToString()));
                 searchObject.ResolvedUsers.Add(securityPrincipalIdParameter.ToString());
             }
         }
     }
 }
        // Token: 0x0600607A RID: 24698 RVA: 0x00147E54 File Offset: 0x00146054
        public override ProvisioningValidationError[] Validate(ADProvisioningPolicy enforcementPolicy, IConfigurable readOnlyPresentationObject)
        {
            base.Validate(enforcementPolicy, readOnlyPresentationObject);
            ADObject adobject;

            if (readOnlyPresentationObject is ADPublicFolder)
            {
                adobject = (ADPublicFolder)readOnlyPresentationObject;
            }
            else
            {
                adobject = (MailEnabledRecipient)readOnlyPresentationObject;
            }
            Unlimited <int> fromValue = (Unlimited <int>)enforcementPolicy[base.CountQuotaProperty];

            if (!fromValue.IsUnlimited && (T)fromValue >= 0)
            {
                int  num = (T)fromValue;
                bool flag;
                if (num == 0)
                {
                    flag = true;
                }
                else
                {
                    string domainController = null;
                    if (base.Context != null && base.Context.UserSpecifiedParameters != null && base.Context.UserSpecifiedParameters.Contains("DomainController"))
                    {
                        object obj = base.Context.UserSpecifiedParameters["DomainController"];
                        if (obj != null)
                        {
                            domainController = obj.ToString();
                        }
                    }
                    ADSessionSettings     sessionSettings = ADSessionSettings.FromOrganizationIdWithoutRbacScopes(ADSystemConfigurationSession.GetRootOrgContainerIdForLocalForest(), adobject.OrganizationId, null, false);
                    IConfigurationSession tenantOrTopologyConfigurationSession = DirectorySessionFactory.Default.GetTenantOrTopologyConfigurationSession(domainController, true, ConsistencyMode.FullyConsistent, sessionSettings, 178, "Validate", "f:\\15.00.1497\\sources\\dev\\data\\src\\directory\\Provisioning\\RecipientResourceCountQuota.cs");
                    flag = SystemAddressListMemberCount.IsQuotaExceded(tenantOrTopologyConfigurationSession, adobject.OrganizationId, base.SystemAddressListName, num);
                }
                if (flag)
                {
                    string          policyId = string.Format("{0}: {1}", enforcementPolicy.Identity.ToString(), base.CountQuotaProperty.Name);
                    LocalizedString description;
                    if (adobject.OrganizationalUnitRoot == null)
                    {
                        description = DirectoryStrings.ErrorExceededHosterResourceCountQuota(policyId, (readOnlyPresentationObject.GetType() == typeof(ADPublicFolder)) ? "MailPublicFolder" : ProvisioningHelper.GetProvisioningObjectTag(readOnlyPresentationObject.GetType()), num);
                    }
                    else
                    {
                        description = DirectoryStrings.ErrorExceededMultiTenantResourceCountQuota(policyId, (readOnlyPresentationObject.GetType() == typeof(ADPublicFolder)) ? "MailPublicFolder" : ProvisioningHelper.GetProvisioningObjectTag(readOnlyPresentationObject.GetType()), adobject.OrganizationalUnitRoot.Name, num);
                    }
                    return(new ProvisioningValidationError[]
                    {
                        new ProvisioningValidationError(description, ExchangeErrorCategory.ServerOperation, null)
                    });
                }
            }
            return(null);
        }
Example #19
0
        private IConfigurationSession CreateScopedSession(ExchangeConfigurationUnit cu)
        {
            ADObjectId            rootOrgContainerId = ADSystemConfigurationSession.GetRootOrgContainerId(base.DomainController, null);
            ADSessionSettings     sessionSettings    = ADSessionSettings.FromOrganizationIdWithoutRbacScopes(rootOrgContainerId, cu.OrganizationId, base.ExecutingUserOrganizationId, false);
            IConfigurationSession tenantOrTopologyConfigurationSession = DirectorySessionFactory.Default.GetTenantOrTopologyConfigurationSession(base.DomainController, true, ConsistencyMode.PartiallyConsistent, sessionSettings, 473, "CreateScopedSession", "f:\\15.00.1497\\sources\\dev\\Management\\src\\Management\\transport\\EdgeSync\\TestEdgeSyncEhf.cs");

            tenantOrTopologyConfigurationSession.UseConfigNC = true;
            return(tenantOrTopologyConfigurationSession);
        }
        protected override IConfigDataProvider CreateSession()
        {
            ADSessionSettings     sessionSettings = ADSessionSettings.FromOrganizationIdWithoutRbacScopes(base.RootOrgContainerId, (this.principal != null) ? this.principal.MailboxInfo.OrganizationId : base.CurrentOrganizationId, (this.principal != null) ? this.principal.MailboxInfo.OrganizationId : base.ExecutingUserOrganizationId, false);
            IConfigurationSession tenantOrTopologyConfigurationSession = DirectorySessionFactory.Default.GetTenantOrTopologyConfigurationSession(base.DomainController, false, ConsistencyMode.PartiallyConsistent, sessionSettings, 193, "CreateSession", "f:\\15.00.1497\\sources\\dev\\Management\\src\\Management\\AirSync\\GetMobileDeviceStatistics.cs");

            tenantOrTopologyConfigurationSession.UseConfigNC      = false;
            tenantOrTopologyConfigurationSession.UseGlobalCatalog = (base.DomainController == null && base.ServerSettings.ViewEntireForest);
            return(tenantOrTopologyConfigurationSession);
        }
        public static IConfigurationSession CreateOrganizationFindingSession(OrganizationId currentOrgId, OrganizationId executingUserOrgId)
        {
            ADObjectId            rootOrgContainerId = ADSystemConfigurationSession.GetRootOrgContainerId(null, null);
            ADSessionSettings     sessionSettings    = ADSessionSettings.FromOrganizationIdWithoutRbacScopes(rootOrgContainerId, currentOrgId, executingUserOrgId, true);
            IConfigurationSession tenantOrTopologyConfigurationSession = DirectorySessionFactory.Default.GetTenantOrTopologyConfigurationSession(null, true, ConsistencyMode.PartiallyConsistent, null, sessionSettings, ConfigScopes.TenantSubTree, 643, "CreateOrganizationFindingSession", "f:\\15.00.1497\\sources\\dev\\Management\\src\\Management\\MailboxReplication\\RequestBase\\RequestTaskHelper.cs");

            tenantOrTopologyConfigurationSession.UseConfigNC = false;
            return(tenantOrTopologyConfigurationSession);
        }
        internal override bool CheckForAssociatedUsers()
        {
            ADSessionSettings sessionSettings = ADSessionSettings.FromOrganizationIdWithoutRbacScopes(ADSystemConfigurationSession.GetRootOrgContainerIdForLocalForest(), base.OrganizationId, null, false);
            IRecipientSession tenantOrRootOrgRecipientSession = DirectorySessionFactory.Default.GetTenantOrRootOrgRecipientSession(ConsistencyMode.PartiallyConsistent, sessionSettings, 2539, "CheckForAssociatedUsers", "f:\\15.00.1497\\sources\\dev\\data\\src\\directory\\SystemConfiguration\\OwaMailboxPolicy.cs");
            QueryFilter       filter = new ComparisonFilter(ComparisonOperator.Equal, ADUserSchema.OwaMailboxPolicy, base.Id);

            ADUser[] array = tenantOrRootOrgRecipientSession.FindADUser(null, QueryScope.SubTree, filter, null, 1);
            return(array != null && array.Length > 0);
        }
Example #23
0
        protected override IConfigDataProvider CreateSession()
        {
            ADSessionSettings adsessionSettings = ADSessionSettings.FromOrganizationIdWithoutRbacScopes(base.RootOrgContainerId, base.CurrentOrganizationId, base.ExecutingUserOrganizationId, false);
            IRecipientSession tenantOrRootOrgRecipientSession = DirectorySessionFactory.Default.GetTenantOrRootOrgRecipientSession(this.DomainController, false, ConsistencyMode.PartiallyConsistent, adsessionSettings, 82, "CreateSession", "f:\\15.00.1497\\sources\\dev\\Management\\src\\Management\\RecipientTasks\\MicrosoftExchangeRecipient\\RemoveMicrosoftExchangeRecipient.cs");

            tenantOrRootOrgRecipientSession.LinkResolutionServer = ADSession.GetCurrentConfigDC(adsessionSettings.GetAccountOrResourceForestFqdn());
            tenantOrRootOrgRecipientSession.UseGlobalCatalog     = false;
            return(tenantOrRootOrgRecipientSession);
        }
Example #24
0
        private IConfigurationSession GetConfigurationSession()
        {
            ADSessionSettings     sessionSettings = ADSessionSettings.FromOrganizationIdWithoutRbacScopes(base.RootOrgContainerId, base.CurrentOrganizationId, base.ExecutingUserOrganizationId, false);
            IConfigurationSession tenantOrTopologyConfigurationSession = DirectorySessionFactory.Default.GetTenantOrTopologyConfigurationSession(base.DomainController, true, ConsistencyMode.PartiallyConsistent, sessionSettings, 342, "GetConfigurationSession", "f:\\15.00.1497\\sources\\dev\\Management\\src\\Management\\RecipientTasks\\cas\\GetCASMailbox.cs");

            tenantOrTopologyConfigurationSession.UseConfigNC      = false;
            tenantOrTopologyConfigurationSession.UseGlobalCatalog = (base.DomainController == null && base.ServerSettings.ViewEntireForest);
            return(tenantOrTopologyConfigurationSession);
        }
Example #25
0
        private IRecipientSession GetRecipientSession(OrganizationId orgId)
        {
            ADSessionSettings sessionSettings = ADSessionSettings.FromOrganizationIdWithoutRbacScopes(ADSystemConfigurationSession.GetRootOrgContainerIdForLocalForest(), orgId, null, false);
            IRecipientSession tenantOrRootOrgRecipientSession = DirectorySessionFactory.Default.GetTenantOrRootOrgRecipientSession(ConsistencyMode.PartiallyConsistent, ADSessionSettings.RescopeToSubtree(sessionSettings), 99, "GetRecipientSession", "f:\\15.00.1497\\sources\\dev\\Management\\src\\Management\\ForwardSync\\GetMsoRawObject.cs");

            tenantOrRootOrgRecipientSession.UseGlobalCatalog = true;
            tenantOrRootOrgRecipientSession.SessionSettings.IncludeSoftDeletedObjects = true;
            return(tenantOrRootOrgRecipientSession);
        }
 public OrganizationCache(OrganizationId organizationId)
 {
     Util.ThrowOnNullArgument(organizationId, "organizationId");
     this.adSettings   = ADSessionSettings.FromOrganizationIdWithoutRbacScopes(BypassAuditCache.OrganizationCache.servicesRootOrgId, organizationId, null, false);
     this.refreshTimer = new GuardedTimer(delegate(object state)
     {
         this.RefreshCache();
     });
     this.RefreshCache();
 }
        private static IRecipientSession GetSession(OrganizationId organizationId, bool allowRehoming = true)
        {
            ADSessionSettings adsessionSettings = ADSessionSettings.FromOrganizationIdWithoutRbacScopes(ADSystemConfigurationSession.GetRootOrgContainerIdForLocalForest(), organizationId, null, false, allowRehoming);

            if (!allowRehoming)
            {
                adsessionSettings.TenantConsistencyMode = TenantConsistencyMode.IncludeRetiredTenants;
            }
            return(DirectorySessionFactory.Default.GetTenantOrRootOrgRecipientSession(null, null, LcidMapper.DefaultLcid, true, ConsistencyMode.IgnoreInvalid, null, adsessionSettings, 449, "GetSession", "f:\\15.00.1497\\sources\\dev\\data\\src\\storage\\OrganizationMailbox\\OrganizationMailbox.cs"));
        }
        protected override void ResolveCurrentOrgIdBasedOnIdentity(IIdentityParameter identity)
        {
            ADSessionSettings     sessionSettings = ADSessionSettings.FromOrganizationIdWithoutRbacScopes(base.RootOrgContainerId, base.CurrentOrganizationId, base.ExecutingUserOrganizationId, true);
            IConfigurationSession tenantOrTopologyConfigurationSession = DirectorySessionFactory.Default.GetTenantOrTopologyConfigurationSession(null, true, ConsistencyMode.PartiallyConsistent, null, sessionSettings, ConfigScopes.TenantSubTree, 107, "ResolveCurrentOrgIdBasedOnIdentity", "f:\\15.00.1497\\sources\\dev\\Management\\src\\Management\\Relocation\\NewTenantRelocationRequest.cs");

            tenantOrTopologyConfigurationSession.UseConfigNC = false;
            ADOrganizationalUnit adorganizationalUnit = (ADOrganizationalUnit)base.GetDataObject <ADOrganizationalUnit>(this.Identity, tenantOrTopologyConfigurationSession, null, null, new LocalizedString?(Strings.ErrorOrganizationNotFound(this.Identity.ToString())), new LocalizedString?(Strings.ErrorOrganizationNotUnique(this.Identity.ToString())));

            base.SetCurrentOrganizationWithScopeSet(adorganizationalUnit.OrganizationId);
        }
        protected override IConfigDataProvider CreateSession()
        {
            ADObjectId            rootOrgContainerIdForLocalForest = ADSystemConfigurationSession.GetRootOrgContainerIdForLocalForest();
            ADSessionSettings     sessionSettings = ADSessionSettings.FromOrganizationIdWithoutRbacScopes(rootOrgContainerIdForLocalForest, base.CurrentOrganizationId ?? base.ExecutingUserOrganizationId, base.ExecutingUserOrganizationId, true);
            IConfigurationSession tenantOrTopologyConfigurationSession = DirectorySessionFactory.Default.GetTenantOrTopologyConfigurationSession(ConsistencyMode.PartiallyConsistent, sessionSettings, 133, "CreateSession", "f:\\15.00.1497\\sources\\dev\\Management\\src\\Management\\TenantMonitoring\\TestExchangeNotification.cs");

            tenantOrTopologyConfigurationSession.UseConfigNC      = true;
            tenantOrTopologyConfigurationSession.UseGlobalCatalog = false;
            return(tenantOrTopologyConfigurationSession);
        }
Example #30
0
        private OrganizationId ResolveCurrentOrganization()
        {
            ADObjectId            rootOrgContainerIdForLocalForest = ADSystemConfigurationSession.GetRootOrgContainerIdForLocalForest();
            ADSessionSettings     sessionSettings = ADSessionSettings.FromOrganizationIdWithoutRbacScopes(rootOrgContainerIdForLocalForest, base.CurrentOrganizationId, base.ExecutingUserOrganizationId, true);
            IConfigurationSession tenantOrTopologyConfigurationSession = DirectorySessionFactory.Default.GetTenantOrTopologyConfigurationSession(base.DomainController, true, ConsistencyMode.PartiallyConsistent, null, sessionSettings, 362, "ResolveCurrentOrganization", "f:\\15.00.1497\\sources\\dev\\Management\\src\\Management\\Migration\\ExportMigrationReport.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);
        }