public static NspiPrincipal FromUserSid(SecurityIdentifier sid, string userDomain) { NspiPrincipal principal = null; if (!string.IsNullOrEmpty(userDomain)) { MiniRecipient miniRecipient = NspiPrincipal.FindMiniRecipientBySid(ADSessionSettings.RootOrgOrSingleTenantFromAcceptedDomainAutoDetect(userDomain), sid); if (miniRecipient != null) { principal = new NspiPrincipal(miniRecipient); } } else if (Configuration.IsDatacenter) { ExTraceGlobals.NspiTracer.TraceWarning <SecurityIdentifier>(0L, "We have to do a fan out query for user {0} because of legacy client.", sid); DirectoryHelper.DoAdCallAndTranslateExceptions(delegate { MiniRecipient miniRecipientFromUserId = PartitionDataAggregator.GetMiniRecipientFromUserId(sid); if (miniRecipientFromUserId != null) { principal = new NspiPrincipal(miniRecipientFromUserId); } }, "ADAccountPartitionLocator::GetAllAccountPartitionIds"); } else { principal = NspiPrincipal.FromUserSid(ADSessionSettings.FromRootOrgScopeSet(), sid); } return(principal ?? new NspiPrincipal(sid)); }
public override IEnumerable <string> GetFullSyncTenants() { QueryFilter filter = this.RetrieveFullSyncTenantsSearchFilter(); return(from cu in PartitionDataAggregator.FindTenantCookieContainers(filter) select cu.ExternalDirectoryOrganizationId); }
public override bool Verify() { bool flag = null == PartitionDataAggregator.FindFirstMoveRequestLinkedToDatabase((ADObjectId)base.Database.Identity); TaskLogger.Trace("NoAssociatedMoveRequestOnDatabaseCondition.Verify(Database '{0}') returns {1}.", new object[] { base.Database.Identity, flag }); return(flag); }
// Token: 0x06000066 RID: 102 RVA: 0x00003074 File Offset: 0x00001274 private static ADUser[] GlobalFindAllArbitrationMailboxes() { Server localhost = AuditLogSearchContext.Localhost; if (!MapiTaskHelper.IsDatacenter) { IRecipientSession tenantOrRootOrgRecipientSession = DirectorySessionFactory.Default.GetTenantOrRootOrgRecipientSession(true, ConsistencyMode.IgnoreInvalid, ADSessionSettings.FromRootOrgScopeSet(), 99, "GlobalFindAllArbitrationMailboxes", "f:\\15.00.1497\\sources\\dev\\Management\\src\\ServiceHost\\Servicelets\\AuditLogSearch\\Program\\AuditLogSearchServicelet.cs"); return(tenantOrRootOrgRecipientSession.FindPaged <ADUser>(RecipientFilterHelper.DiscoveryMailboxFilterForAuditLog(localhost.ExchangeLegacyDN), null, true, null, 0).ToArray <ADUser>()); } return(PartitionDataAggregator.FindAllArbitrationMailboxes(localhost.ExchangeLegacyDN)); }
public bool Verify(out ADUser matchingObject) { matchingObject = PartitionDataAggregator.FindFirstUserOrMoveRequestLinkedToDatabase((ADObjectId)base.Database.Identity); bool flag = null == matchingObject; TaskLogger.Trace("NoAssociatedUserMailboxOnDatabaseCondition.Verify(Database '{0}') returns {1}.", new object[] { base.Database.Identity, flag }); return(flag); }
// Token: 0x06000AC3 RID: 2755 RVA: 0x00046B44 File Offset: 0x00044D44 private Hashtable GetUMEnabledUsersDatacenter(MailboxDatabase database) { Hashtable hashtable = new Hashtable(); if (database != null) { foreach (ADUser aduser in PartitionDataAggregator.GetUMEnabledUsersInDatabase(database)) { hashtable[aduser.ExchangeGuid] = aduser.OrganizationId; } } return(hashtable); }
internal static ADRawEntry FindUserEntry(SecurityIdentifier userSid, WindowsIdentity windowsIdentity, SerializedIdentity serializedIdentity, PartitionId partitionId) { ADRawEntry result; using (new MonitoredScope("FindUserEntry", "FindUserEntry", AuthZLogHelper.AuthZPerfMonitors)) { ADSessionSettings sessionSettings; if (partitionId != null) { sessionSettings = ADSessionSettings.FromAllTenantsPartitionId(partitionId); } else { sessionSettings = ADSessionSettings.FromRootOrgScopeSet(); } IRecipientSession tenantOrRootOrgRecipientSession = DirectorySessionFactory.Default.GetTenantOrRootOrgRecipientSession(ConsistencyMode.IgnoreInvalid, sessionSettings, 817, "FindUserEntry", "f:\\15.00.1497\\sources\\dev\\Configuration\\src\\ObjectModel\\rbac\\ExchangeAuthorizationPlugin.cs"); ADRawEntry adrawEntry = tenantOrRootOrgRecipientSession.FindMiniRecipientBySid <MiniRecipient>(userSid, ExchangeRunspaceConfiguration.userPropertyArray); if (adrawEntry == null && VariantConfiguration.InvariantNoFlightingSnapshot.CmdletInfra.ServiceAccountForest.Enabled) { adrawEntry = PartitionDataAggregator.GetMiniRecipientFromUserId(userSid, ExchangeRunspaceConfiguration.userPropertyArray, ConsistencyMode.IgnoreInvalid); } if (adrawEntry == null) { ExTraceGlobals.AccessDeniedTracer.TraceWarning <SecurityIdentifier, string>(0L, "EAP.FindUserEntry user {0} could not be found in AD, partitionId: {1}", userSid, (partitionId == null) ? "null" : partitionId.ToString()); adrawEntry = ExchangeRunspaceConfiguration.TryFindComputer(userSid); } if (adrawEntry == null && (windowsIdentity != null || serializedIdentity != null)) { ExTraceGlobals.AccessDeniedTracer.TraceWarning <SecurityIdentifier>(0L, "EAP.FindUserEntry computer {0} could not be found in AD", userSid); IIdentity identity = (windowsIdentity != null) ? windowsIdentity : serializedIdentity; ICollection <SecurityIdentifier> groupAccountsSIDs = identity.GetGroupAccountsSIDs(); tenantOrRootOrgRecipientSession = DirectorySessionFactory.Default.GetTenantOrRootOrgRecipientSession(ConsistencyMode.IgnoreInvalid, ADSessionSettings.FromRootOrgScopeSet(), 850, "FindUserEntry", "f:\\15.00.1497\\sources\\dev\\Configuration\\src\\ObjectModel\\rbac\\ExchangeAuthorizationPlugin.cs"); List <ADObjectId> list = null; if (ExchangeRunspaceConfiguration.TryFindLinkedRoleGroupsBySidList(tenantOrRootOrgRecipientSession, groupAccountsSIDs, identity.Name, out list)) { adrawEntry = new ADUser { RemotePowerShellEnabled = true }; } } result = adrawEntry; } return(result); }
protected override IEnumerable <MsoTenantCookieContainer> GetPagedData() { if (this.Identity == null) { QueryFilter queryFilter = QueryFilter.OrTogether(new QueryFilter[] { new ExistsFilter(ExchangeConfigurationUnitSchema.MsoForwardSyncNonRecipientCookie), new ExistsFilter(ExchangeConfigurationUnitSchema.MsoForwardSyncRecipientCookie) }); QueryFilter filter = QueryFilter.AndTogether(new QueryFilter[] { queryFilter, new ComparisonFilter(ComparisonOperator.NotEqual, ExchangeConfigurationUnitSchema.OrganizationStatus, OrganizationStatus.ReadyForRemoval), new ComparisonFilter(ComparisonOperator.NotEqual, ExchangeConfigurationUnitSchema.OrganizationStatus, OrganizationStatus.SoftDeleted), new ComparisonFilter(ComparisonOperator.NotEqual, ExchangeConfigurationUnitSchema.OrganizationStatus, OrganizationStatus.PendingRemoval) }); return(PartitionDataAggregator.FindTenantCookieContainers(filter)); } return(base.GetPagedData()); }
public bool Verify(out MRSRequest matchingMRSObject) { matchingMRSObject = PartitionDataAggregator.FindFirstMRSRequestLinkedToDatabase((ADObjectId)base.Database.Identity); bool flag; if (matchingMRSObject != null) { this.type = matchingMRSObject.RequestType; flag = false; } else { flag = true; } TaskLogger.Trace("NoAssociatedMRSRequestOnDatabaseCondition.Verify(Database '{0}') returns {1}.", new object[] { base.Database.Identity, flag }); return(flag); }
private static ADUser[] InternalFindMultiTenant(OrganizationCapability capability, ADObjectId databaseId) { QueryFilter additionalfilter = null; if (databaseId != null) { additionalfilter = new ComparisonFilter(ComparisonOperator.Equal, ADMailboxRecipientSchema.Database, databaseId); } else { additionalfilter = OrganizationMailbox.GetOrganizationMailboxQueryFilterForLocalServer(); } Dictionary <OrganizationId, ADUser> orgMailboxesDictionary = new Dictionary <OrganizationId, ADUser>(); PartitionDataAggregator.RunOperationOnAllAccountPartitions(true, delegate(IRecipientSession recipientSession) { List <ADUser> organizationMailboxesByCapability = OrganizationMailbox.GetOrganizationMailboxesByCapability(recipientSession, capability, additionalfilter); foreach (ADUser aduser in organizationMailboxesByCapability) { ADUser user = null; if (orgMailboxesDictionary.TryGetValue(aduser.OrganizationId, out user)) { if (OrganizationMailbox.UserComparer(user, aduser) > 0) { orgMailboxesDictionary[aduser.OrganizationId] = aduser; } } else { orgMailboxesDictionary[aduser.OrganizationId] = aduser; } } }); ADUser[] array = new ADUser[orgMailboxesDictionary.Count]; if (orgMailboxesDictionary.Count > 0) { orgMailboxesDictionary.Values.CopyTo(array, 0); } return(array); }
public override IEnumerable <LoadBalancingMiniRecipient> FindAllUsersLinkedToDatabase(ADObjectId databaseId) { return(PartitionDataAggregator.FindAllUsersLinkedToDatabase <LoadBalancingMiniRecipient>(databaseId)); }