private static void FixTenantInfo(RequestJobXML requestJobXML) { if (!CommonUtils.IsMultiTenantEnabled()) { requestJobXML.OrganizationId = OrganizationId.ForestWideOrgId; return; } if (requestJobXML.OrganizationId == OrganizationId.ForestWideOrgId && requestJobXML.ExternalDirectoryOrganizationId == Guid.Empty && requestJobXML.PartitionHint == null) { return; } if (requestJobXML.OrganizationId != OrganizationId.ForestWideOrgId && requestJobXML.PartitionHint == null) { if (requestJobXML.ExternalDirectoryOrganizationId != Guid.Empty) { requestJobXML.OrganizationId = OrganizationId.FromExternalDirectoryOrganizationId(requestJobXML.ExternalDirectoryOrganizationId); } requestJobXML.PartitionHint = TenantPartitionHint.FromOrganizationId(requestJobXML.OrganizationId); requestJobXML.ExternalDirectoryOrganizationId = requestJobXML.PartitionHint.GetExternalDirectoryOrganizationId(); return; } if (requestJobXML.PartitionHint != null) { if (requestJobXML.ExternalDirectoryOrganizationId == Guid.Empty) { requestJobXML.ExternalDirectoryOrganizationId = requestJobXML.PartitionHint.GetExternalDirectoryOrganizationId(); } requestJobXML.OrganizationId = OrganizationId.FromExternalDirectoryOrganizationId(requestJobXML.ExternalDirectoryOrganizationId); } }
internal static void ApplyOrganization(TransactionalRequestJob dataObject, OrganizationId organizationId) { dataObject.OrganizationId = organizationId; if (organizationId != OrganizationId.ForestWideOrgId) { dataObject.PartitionHint = TenantPartitionHint.FromOrganizationId(organizationId); dataObject.ExternalDirectoryOrganizationId = dataObject.PartitionHint.GetExternalDirectoryOrganizationId(); } }
protected override IConfigDataProvider CreateSession() { base.CurrentOrganizationId = this.ResolveCurrentOrganization(); this.partitionMailbox = MigrationObjectTaskBase <MigrationConfigIdParameter> .ResolvePartitionMailbox(this.Partition, base.TenantGlobalCatalogSession, base.ServerSettings, new DataAccessHelper.CategorizedGetDataObjectDelegate(base.GetDataObject <ADUser>), new Task.ErrorLoggerDelegate(base.WriteError), base.CurrentOrganizationId == OrganizationId.ForestWideOrgId && MapiTaskHelper.IsDatacenter); TenantPartitionHint partitionHint = TenantPartitionHint.FromOrganizationId(base.CurrentOrganizationId); MigrationLogger.Initialize(); MigrationLogContext.Current.Source = "Set-MigrationConfig"; MigrationLogContext.Current.Organization = base.CurrentOrganizationId.OrganizationalUnit; return(MigrationSessionDataProvider.CreateDataProvider("SetMigrationConfig", MigrationHelperBase.CreateRecipientSession(partitionHint), this.partitionMailbox)); }
public static byte[] ConvertTenantHint(byte[] originalSignature, MailboxSignatureFlags originalSignatureFlags, TenantPartitionHint tenantHint) { MailboxSignatureSectionsContainer mailboxSignatureSectionsContainer; if (originalSignatureFlags == MailboxSignatureFlags.GetLegacy) { mailboxSignatureSectionsContainer = MailboxSignatureSectionsContainer.Create(MailboxSignatureSectionType.BasicInformation, new MailboxSignatureConverter.MailboxBasicInformationSectionCreator(originalSignature)); } else { mailboxSignatureSectionsContainer = MailboxSignatureSectionsContainer.Parse(originalSignature, NullMailboxSignatureSectionProcessor.Instance); } if (tenantHint == null) { tenantHint = TenantPartitionHint.FromOrganizationId(OrganizationId.ForestWideOrgId); } byte[] persistablePartitionHint = tenantHint.GetPersistablePartitionHint(); int num = TenantHintHelper.SerializeTenantHint(persistablePartitionHint, null, 0); byte[] array = new byte[num]; TenantHintHelper.SerializeTenantHint(persistablePartitionHint, array, 0); mailboxSignatureSectionsContainer.UpdateSection(new MailboxSignatureSectionMetadata(MailboxSignatureSectionType.TenantHint, 1, 1, persistablePartitionHint.Length), array); return(mailboxSignatureSectionsContainer.Serialize()); }
// Token: 0x06001246 RID: 4678 RVA: 0x000687E8 File Offset: 0x000669E8 public override MailboxData CreateOnDemandMailboxData(Guid itemGuid, string parameters) { OABGeneratorAssistantRunNowParameters oabgeneratorAssistantRunNowParameters; if (!OABGeneratorAssistantRunNowParameters.TryParse(parameters, out oabgeneratorAssistantRunNowParameters)) { OABGeneratorAssistant.Tracer.TraceError <string>((long)this.GetHashCode(), "OABGeneratorAssistant.CreateOnDemandMailboxData: ignoring on-demand request due malformed string parameter: {0}.", parameters); return(null); } ADSessionSettings sessionSettings = OABVariantConfigurationSettings.IsMultitenancyEnabled ? ADSessionSettings.FromAllTenantsPartitionId(oabgeneratorAssistantRunNowParameters.PartitionId) : ADSessionSettings.FromRootOrgScopeSet(); ADUser organizationalMailboxFromAD = this.GetOrganizationalMailboxFromAD(sessionSettings, itemGuid); if (organizationalMailboxFromAD == null) { OABGeneratorAssistant.Tracer.TraceError <Guid>((long)this.GetHashCode(), "OABGeneratorAssistant.CreateOnDemandMailboxData: ignoring on-demand request due to unknown organization mailbox: {0}", itemGuid); return(null); } return(new OABGeneratorMailboxData(organizationalMailboxFromAD.OrganizationId, base.DatabaseInfo.Guid, organizationalMailboxFromAD.ExchangeGuid, organizationalMailboxFromAD.DisplayName, organizationalMailboxFromAD.Sid, organizationalMailboxFromAD.PrimarySmtpAddress.Domain, oabgeneratorAssistantRunNowParameters.ObjectGuid, TenantPartitionHint.FromOrganizationId(organizationalMailboxFromAD.OrganizationId), oabgeneratorAssistantRunNowParameters.Description)); }