private static ADSessionSettings FromExternalDirectoryOrganizationId(Guid tenantGuid, IRoutingDiagnostics diagnostics) { DateTime utcNow = DateTime.UtcNow; ADSessionSettings result; try { result = ADSessionSettings.FromExternalDirectoryOrganizationId(tenantGuid); } finally { diagnostics.AddGlobalLocatorLatency(DateTime.UtcNow - utcNow); } return(result); }
public override LoadBalancingMiniRecipient FindRecipient(DirectoryIdentity identity) { if (identity == null) { throw new ArgumentNullException("identity", "DirectoryIdentity should not be null"); } ADSessionSettings sessionSettings; if (identity.OrganizationId == Guid.Empty) { sessionSettings = ADSessionSettings.FromRootOrgScopeSet(); } else { sessionSettings = ADSessionSettings.FromExternalDirectoryOrganizationId(identity.OrganizationId); } IRecipientSession tenantOrRootOrgRecipientSession = DirectorySessionFactory.Default.GetTenantOrRootOrgRecipientSession(true, ConsistencyMode.IgnoreInvalid, sessionSettings, 129, "FindRecipient", "f:\\15.00.1497\\sources\\dev\\mrs\\src\\MailboxLoadBalance\\Directory\\ExchangeDirectory\\RecipientSessionAdapter.cs"); QueryFilter queryFilter = new ComparisonFilter(ComparisonOperator.Equal, ADObjectSchema.Id, identity.ADObjectId); QueryFilter queryFilter2 = new ComparisonFilter(ComparisonOperator.Equal, MiniRecipientSchema.ArchiveGuid, identity.Guid); QueryFilter queryFilter3 = new ComparisonFilter(ComparisonOperator.Equal, MiniRecipientSchema.ExchangeGuid, identity.Guid); QueryFilter queryFilter4 = new ComparisonFilter(ComparisonOperator.Equal, ADObjectSchema.ExchangeObjectId, identity.Guid); QueryFilter filter = QueryFilter.OrTogether(new QueryFilter[] { queryFilter, queryFilter2, queryFilter3, queryFilter4 }); LoadBalancingMiniRecipient[] array = tenantOrRootOrgRecipientSession.Find <LoadBalancingMiniRecipient>(null, QueryScope.SubTree, filter, null, 2); if (array == null || array.Length == 0) { throw new RecipientNotFoundException(identity.ToString()); } if (array.Length > 1) { throw new MultipleRecipientFoundException(identity.ToString()); } return(array[0]); }
// Token: 0x06000A61 RID: 2657 RVA: 0x0004438C File Offset: 0x0004258C internal static ADRecipient GetADRecipient(Guid tenantGuid, string userLegacyDN) { ADSessionSettings sessionSettings = (tenantGuid == Guid.Empty) ? ADSessionSettings.FromRootOrgScopeSet() : ADSessionSettings.FromExternalDirectoryOrganizationId(tenantGuid); IRecipientSession tenantOrRootOrgRecipientSession = DirectorySessionFactory.Default.GetTenantOrRootOrgRecipientSession(true, ConsistencyMode.PartiallyConsistent, sessionSettings, 48, "GetADRecipient", "f:\\15.00.1497\\sources\\dev\\MailboxAssistants\\src\\assistants\\CalendarNotification\\Utils.cs"); ADRecipient result = null; try { result = tenantOrRootOrgRecipientSession.FindByLegacyExchangeDN(userLegacyDN); } catch (NonUniqueRecipientException) { Utils.Tracer.TraceError <string>((long)typeof(MailboxData).GetHashCode(), "User {0} AD object is not unique", userLegacyDN); } catch (ADTransientException) { Utils.Tracer.TraceError <string>((long)typeof(MailboxData).GetHashCode(), "Due to ADTransientException we can't get AD object for User {0} ", userLegacyDN); } catch (ADOperationException) { Utils.Tracer.TraceError <string>((long)typeof(MailboxData).GetHashCode(), "Due to ADOperationException we can't get AD object for User {0} ", userLegacyDN); } return(result); }
private UnifiedPolicySyncNotificationDataProvider GetDataProvider(Guid tenantId) { ADUser mailboxOwner = this.syncArbitrationMailboxADObjectCache.Get(tenantId); return(new UnifiedPolicySyncNotificationDataProvider(ADSessionSettings.FromExternalDirectoryOrganizationId(tenantId), mailboxOwner, "New-CompliancePolicySyncNotification")); }
protected MsoFullSyncCookieManager(Guid contextId) : base(contextId) { this.configSession = DirectorySessionFactory.Default.CreateTenantConfigurationSession(null, false, ConsistencyMode.PartiallyConsistent, ADSessionSettings.FromExternalDirectoryOrganizationId(contextId), 55, ".ctor", "f:\\15.00.1497\\sources\\dev\\data\\src\\directory\\Sync\\CookieManager\\MsoFullSyncCookieManager.cs"); }
// Token: 0x06000033 RID: 51 RVA: 0x000034F8 File Offset: 0x000016F8 internal static Uri GetRedirectUrlForTenantSite(string organization, string redirectTemplate, Uri originalUrl, ExEventLog eventLogger) { if (organization == null) { return(null); } ADSessionSettings sessionSettings; try { Guid externalDirectoryOrganizationId; sessionSettings = (Guid.TryParse(organization, out externalDirectoryOrganizationId) ? ADSessionSettings.FromExternalDirectoryOrganizationId(externalDirectoryOrganizationId) : ADSessionSettings.FromTenantCUName(organization)); } catch (CannotResolveTenantNameException) { return(null); } catch (CannotResolveExternalDirectoryOrganizationIdException) { return(null); } ITenantConfigurationSession session = DirectorySessionFactory.Default.CreateTenantConfigurationSession(ConsistencyMode.PartiallyConsistent, sessionSettings, 180, "GetRedirectUrlForTenantSite", "f:\\15.00.1497\\sources\\dev\\Configuration\\src\\RedirectionModule\\RedirectionHelper.cs"); ExchangeConfigurationUnit exchangeConfigurationUnit = RedirectionHelper.ResolveConfigurationUnitByName(organization, session); if (exchangeConfigurationUnit == null || exchangeConfigurationUnit.ManagementSiteLink == null) { return(null); } ADSite localSite = LocalSiteCache.LocalSite; ADObjectId adobjectId = ADObjectIdResolutionHelper.ResolveDN(exchangeConfigurationUnit.ManagementSiteLink); Logger.LogEvent(eventLogger, TaskEventLogConstants.Tuple_LiveIdRedirection_UsingManagementSiteLink, organization, new object[] { organization, exchangeConfigurationUnit.AdminDisplayVersion, exchangeConfigurationUnit.ManagementSiteLink }); if (adobjectId.Equals(localSite.Id)) { return(null); } foreach (ADObjectId adobjectId2 in localSite.ResponsibleForSites) { if (adobjectId2.Equals(adobjectId)) { Logger.LogEvent(eventLogger, TaskEventLogConstants.Tuple_LiveIdRedirection_TargetSitePresentOnResponsibleForSite, organization, new object[] { organization, adobjectId, adobjectId2 }); return(null); } } return(RedirectionHelper.GetRedirectUrlForTenantSite(adobjectId, redirectTemplate, originalUrl)); }
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)); }
// Token: 0x06001573 RID: 5491 RVA: 0x00079F18 File Offset: 0x00078118 public static IRecipientSession GetAdRecipientSession(Guid externalDirectoryOrganizationId) { ADSessionSettings sessionSettings = (externalDirectoryOrganizationId != Guid.Empty) ? ADSessionSettings.FromExternalDirectoryOrganizationId(externalDirectoryOrganizationId) : ADSessionSettings.FromRootOrgScopeSet(); return(DirectorySessionFactory.Default.GetTenantOrRootOrgRecipientSession(true, ConsistencyMode.IgnoreInvalid, sessionSettings, 31, "GetAdRecipientSession", "f:\\15.00.1497\\sources\\dev\\MailboxAssistants\\src\\assistants\\MailboxProcessor\\MailboxProcessorHelpers\\ADHelper.cs")); }
// Token: 0x060003E6 RID: 998 RVA: 0x00016BE8 File Offset: 0x00014DE8 internal static IRecipientSession GetRecipientSessionFromExternalDirectoryOrganizationId(LatencyTracker latencyTracker, Guid externalOrgId, RequestDetailsLogger logger) { if (latencyTracker == null) { throw new ArgumentNullException("latencyTracker"); } if (externalOrgId == Guid.Empty) { throw new ArgumentNullException("latencyTracker"); } ADSessionSettings sessionSettings = null; if (Utilities.IsPartnerHostedOnly || GlobalConfiguration.GetSnapshot(MachineSettingsContext.Local, null, null).WindowsLiveID.Enabled) { try { sessionSettings = DirectoryHelper.CreateADSessionSettingsWithDiagnostics(() => ADSessionSettings.FromExternalDirectoryOrganizationId(externalOrgId), logger, latencyTracker, false); goto IL_8F; } catch (CannotResolveExternalDirectoryOrganizationIdException ex) { throw new HttpProxyException(HttpStatusCode.NotFound, 3009, ex.Message, ex); } } sessionSettings = ADSessionSettings.FromRootOrgScopeSet(); IL_8F: return(DirectoryHelper.CreateSession(sessionSettings)); }
private static ITenantConfigurationSession GetTenantSession(Guid tenantId) { return(DirectorySessionFactory.Default.CreateTenantConfigurationSession(ConsistencyMode.FullyConsistent, ADSessionSettings.FromExternalDirectoryOrganizationId(tenantId), 420, "GetTenantSession", "f:\\15.00.1497\\sources\\dev\\Hygiene\\src\\Data\\Directory\\UnifiedPolicy\\UnifiedPolicySession.cs")); }
protected override void InternalValidate() { Exception innerException; if (!NewMSOFullSyncObjectRequest.IsValidGuid(this.ObjectId.ContextId, out innerException) || !NewMSOFullSyncObjectRequest.IsValidGuid(this.ObjectId.ObjectId, out innerException)) { base.WriteError(new LocalizedException(DirectoryStrings.ExArgumentException("ObjectId", this.ObjectId), innerException), ExchangeErrorCategory.Client, null); } Guid externalDirectoryOrganizationId = new Guid(this.ObjectId.ContextId); ITenantConfigurationSession tenantConfigurationSession = null; try { tenantConfigurationSession = DirectorySessionFactory.Default.CreateTenantConfigurationSession(true, ConsistencyMode.PartiallyConsistent, ADSessionSettings.FromExternalDirectoryOrganizationId(externalDirectoryOrganizationId), 134, "InternalValidate", "f:\\15.00.1497\\sources\\dev\\Management\\src\\Management\\ForwardSync\\NewMSOFullSyncObjectRequest.cs"); } catch (CannotResolveExternalDirectoryOrganizationIdException) { } if (tenantConfigurationSession != null) { ExchangeConfigurationUnit exchangeConfigurationUnitByExternalId = tenantConfigurationSession.GetExchangeConfigurationUnitByExternalId(this.ObjectId.ContextId); if (exchangeConfigurationUnitByExternalId != null && !StringComparer.OrdinalIgnoreCase.Equals(exchangeConfigurationUnitByExternalId.DirSyncServiceInstance, this.ServiceInstanceId.InstanceId)) { base.WriteError(new ServiceInstanceNotMatchException(this.ObjectId.ToString(), this.ServiceInstanceId.InstanceId, exchangeConfigurationUnitByExternalId.DirSyncServiceInstance), ExchangeErrorCategory.Client, this.ObjectId); } } base.InternalValidate(); }
internal static IRecipientSession GetRecipientSessionFromExternalDirectoryOrganizationId(LatencyTracker latencyTracker, Guid externalOrgId) { if (latencyTracker == null) { throw new ArgumentNullException("latencyTracker"); } if (externalOrgId == Guid.Empty) { throw new ArgumentNullException("latencyTracker"); } ADSessionSettings sessionSettings = null; if (!Utilities.IsPartnerHostedOnly) { if (!VariantConfiguration.InvariantNoFlightingSnapshot.Global.WindowsLiveID.Enabled) { goto IL_A4; } } try { sessionSettings = DirectoryHelper.ExecuteFunctionAndUpdateMovingAveragePerformanceCounter <ADSessionSettings>(PerfCounters.HttpProxyCountersInstance.MovingAverageTenantLookupLatency, () => DirectoryHelper.InvokeGls <ADSessionSettings>(latencyTracker, () => ADSessionSettings.FromExternalDirectoryOrganizationId(externalOrgId))); goto IL_AA; } catch (CannotResolveExternalDirectoryOrganizationIdException ex) { throw new HttpProxyException(HttpStatusCode.NotFound, HttpProxySubErrorCode.DomainNotFound, ex.Message, ex); } IL_A4: sessionSettings = ADSessionSettings.FromRootOrgScopeSet(); IL_AA: return(DirectoryHelper.CreateSession(sessionSettings)); }
internal static IRecipientSession GetRecipientSession(IConfigurationSession configurationSession) { OrganizationId organizationId = configurationSession.GetOrgContainer().OrganizationId; return(DirectorySessionFactory.Default.GetTenantOrRootOrgRecipientSession(ConsistencyMode.IgnoreInvalid, ADSessionSettings.FromExternalDirectoryOrganizationId(new Guid(organizationId.ToExternalDirectoryOrganizationId())), 803, "GetRecipientSession", "f:\\15.00.1497\\sources\\dev\\Management\\src\\Management\\transport\\UnifiedPolicy\\Utils.cs")); }