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)); }
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; }
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())))); }
// 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")); }
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); } }
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(); }
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(); }
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")); }
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); }
// 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); }
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); }
// 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); }
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); } }
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); }
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); }
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); }
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); }
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); }
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); }