public static string GetOrganizationRealm(OrganizationId organizationId) { if (organizationId == null) { throw new ArgumentNullException("organizationId"); } if (OAuthConfigHelper.isMultiTenancyEnabled && organizationId.Equals(OrganizationId.ForestWideOrgId)) { throw new InvalidOperationException("Should not query the global Realm property in a Datacenter or Hosting deployement."); } ADSessionSettings sessionSettings = ADSessionSettings.FromOrganizationIdWithoutRbacScopesServiceOnly(organizationId); IConfigurationSession tenantOrTopologyConfigurationSession = DirectorySessionFactory.Default.GetTenantOrTopologyConfigurationSession(ConsistencyMode.IgnoreInvalid, sessionSettings, 53, "GetOrganizationRealm", "f:\\15.00.1497\\sources\\dev\\data\\src\\directory\\SystemConfiguration\\OAuth\\OAuthConfigHelper.cs"); string result; if (OAuthConfigHelper.isMultiTenancyEnabled) { OrganizationId currentOrganizationId = tenantOrTopologyConfigurationSession.SessionSettings.CurrentOrganizationId; ExchangeConfigurationUnit exchangeConfigurationUnit = tenantOrTopologyConfigurationSession.Read <ExchangeConfigurationUnit>(currentOrganizationId.ConfigurationUnit); result = exchangeConfigurationUnit.ExternalDirectoryOrganizationId; } else { AuthConfig authConfig = AuthConfig.Read(tenantOrTopologyConfigurationSession); if (!string.IsNullOrEmpty(authConfig.Realm)) { result = authConfig.Realm; } else { result = tenantOrTopologyConfigurationSession.GetDefaultAcceptedDomain().DomainName.ToString(); } } return(result); }
public MailboxSearchConfigurationProvider(ADObjectId discoverySystemMailboxId, string searchName, IDiscoverySearchDataProvider searchDataProvider, MailboxDiscoverySearch searchObject) { Util.ThrowIfNullOrEmpty(searchName, "searchName"); this.discoverySystemMailboxId = discoverySystemMailboxId; if (discoverySystemMailboxId != null) { OrganizationId organizationId = this.ResolveOrganization(discoverySystemMailboxId); ADSessionSettings adsessionSettings = ADSessionSettings.FromOrganizationIdWithoutRbacScopesServiceOnly(organizationId); if (organizationId.Equals(OrganizationId.ForestWideOrgId)) { adsessionSettings = ADSessionSettings.RescopeToSubtree(adsessionSettings); } if (VariantConfiguration.InvariantNoFlightingSnapshot.Global.MultiTenancy.Enabled) { adsessionSettings.IncludeInactiveMailbox = true; } this.recipientSession = DirectorySessionFactory.Default.GetTenantOrRootOrgRecipientSession(ConsistencyMode.PartiallyConsistent, adsessionSettings, 146, ".ctor", "f:\\15.00.1497\\sources\\dev\\EDiscovery\\src\\MailboxSearch\\Common\\MailboxSearchConfigurationProvider.cs"); } this.SearchDataProvider = searchDataProvider; if (this.SearchDataProvider == null) { this.SearchDataProvider = new DiscoverySearchDataProvider(this.DiscoverySystemMailboxUser.OrganizationId); } this.SearchObject = searchObject; if (this.SearchObject == null) { this.SearchObject = this.SearchDataProvider.Find <MailboxDiscoverySearch>(searchName); if (this.SearchObject == null) { Util.Tracer.TraceError <string>((long)this.GetHashCode(), "Unable to find SearchObject {0}", searchName); throw new SearchObjectNotFoundException(Strings.UnableToFindSearchObject(searchName)); } } }
public DataClassificationConfig GetDataClassificationConfig(OrganizationId organizationId, IConfigurationSession currentDataSession) { if (object.ReferenceEquals(null, organizationId)) { throw new ArgumentNullException("organizationId"); } if (currentDataSession == null) { throw new ArgumentNullException("currentDataSession"); } if (!VariantConfiguration.InvariantNoFlightingSnapshot.Global.MultiTenancy.Enabled || OrganizationId.ForestWideOrgId.Equals(organizationId)) { return(null); } if (!organizationId.Equals(currentDataSession.SessionSettings.CurrentOrganizationId)) { throw new ArgumentException(new ArgumentException().Message, "currentDataSession"); } SharedConfiguration sharedConfiguration = SharedConfiguration.GetSharedConfiguration(organizationId); IConfigurationSession configurationSession; if (sharedConfiguration != null) { configurationSession = DirectorySessionFactory.Default.GetTenantOrTopologyConfigurationSession(true, ConsistencyMode.PartiallyConsistent, sharedConfiguration.GetSharedConfigurationSessionSettings(), 1186, "GetDataClassificationConfig", "f:\\15.00.1497\\sources\\dev\\Management\\src\\Management\\transport\\ClassificationDefinitions\\ClassificationDefinitionUtils.cs"); } else { configurationSession = currentDataSession; } DataClassificationConfig[] array = configurationSession.Find <DataClassificationConfig>(null, QueryScope.SubTree, null, null, 1); ExAssert.RetailAssert(array != null && 1 == array.Length, "There should be one and only one DataClassificationConfig applicable to a particular tenant."); return(array[0]); }
private void CreatePartnerApplicationsContainer() { ADObjectId containerId = PartnerApplication.GetContainerId(this.ConfigurationSession); if (this.ConfigurationSession.Read <Container>(containerId) == null) { IConfigurationSession configurationSession = (IConfigurationSession)base.DataSession; OrganizationId currentOrganizationId = this.ConfigurationSession.SessionSettings.CurrentOrganizationId; if (!currentOrganizationId.Equals(OrganizationId.ForestWideOrgId)) { ADObjectId containerId2 = AuthConfig.GetContainerId(this.ConfigurationSession); if (this.ConfigurationSession.Read <AuthConfig>(containerId2) == null) { AuthConfig authConfig = new AuthConfig(); authConfig.OrganizationId = currentOrganizationId; authConfig.SetId(containerId2); configurationSession.Save(authConfig); } } Container container = new Container(); container.OrganizationId = currentOrganizationId; container.SetId(containerId); configurationSession.Save(container); } }
public IEnumerable <TransportRule> GetAllClassificationRuleCollection(OrganizationId organizationId, IConfigurationSession currentDataSession, QueryFilter additionalFilter) { if (object.ReferenceEquals(null, organizationId)) { throw new ArgumentNullException("organizationId"); } if (currentDataSession != null && !organizationId.Equals(currentDataSession.SessionSettings.CurrentOrganizationId)) { throw new ArgumentException(new ArgumentException().Message, "currentDataSession"); } HashSet <TransportRule> hashSet = new HashSet <TransportRule>(ClassificationDefinitionsDataReader.transportRuleComparer); bool flag = OrganizationId.ForestWideOrgId.Equals(organizationId); IConfigurationSession configurationSession = null; if (flag && currentDataSession != null) { configurationSession = currentDataSession; } else if (flag || this.isAggregateReader) { configurationSession = DirectorySessionFactory.Default.CreateTopologyConfigurationSession(true, ConsistencyMode.PartiallyConsistent, ADSessionSettings.FromRootOrgScopeSet(), 1092, "GetAllClassificationRuleCollection", "f:\\15.00.1497\\sources\\dev\\Management\\src\\Management\\transport\\ClassificationDefinitions\\ClassificationDefinitionUtils.cs"); } if (configurationSession != null) { hashSet.UnionWith(configurationSession.FindPaged <TransportRule>(additionalFilter, configurationSession.GetOrgContainerId().GetDescendantId(ClassificationDefinitionConstants.ClassificationDefinitionsRdn), false, null, 0)); } if (!flag) { IConfigurationSession configurationSession2 = currentDataSession ?? DirectorySessionFactory.Default.GetTenantOrTopologyConfigurationSession(true, ConsistencyMode.PartiallyConsistent, ADSessionSettings.FromOrganizationIdWithoutRbacScopes(ADSystemConfigurationSession.GetRootOrgContainerIdForLocalForest(), organizationId, null, false), 1114, "GetAllClassificationRuleCollection", "f:\\15.00.1497\\sources\\dev\\Management\\src\\Management\\transport\\ClassificationDefinitions\\ClassificationDefinitionUtils.cs"); hashSet.UnionWith(configurationSession2.FindPaged <TransportRule>(additionalFilter, configurationSession2.GetOrgContainerId().GetDescendantId(ClassificationDefinitionConstants.ClassificationDefinitionsRdn), false, null, 0)); } return(hashSet); }
protected void ResolveEntry(RecipientIdParameter entry, out ADRecipient adRecipient, out SmtpAddress?externalAddress) { if (entry == null) { base.WriteError(new ArgumentNullException("entry"), (ErrorCategory)1000, null); } adRecipient = null; externalAddress = null; try { adRecipient = (ADRecipient)base.GetDataObject <ADRecipient>(entry, base.TenantGlobalCatalogSession, this.DataObject.OrganizationId.OrganizationalUnit, new LocalizedString?(Strings.ErrorRecipientNotFound((string)entry)), new LocalizedString?(Strings.ErrorRecipientNotUnique((string)entry))); } catch (ManagementObjectNotFoundException) { try { externalAddress = new SmtpAddress?(SmtpAddress.Parse(entry.ToString())); } catch (FormatException exception) { base.WriteError(exception, ErrorCategory.InvalidData, null); } adRecipient = null; return; } OrganizationId organizationId = this.DataObject.OrganizationId; OrganizationId organizationId2 = adRecipient.OrganizationId; if (!organizationId.Equals(organizationId2)) { base.WriteError(new RecipientTaskException(Strings.ErrorEntryNotInRecipientOrg(entry.ToString())), (ErrorCategory)1003, null); } }
private bool Equals(Event <T> other) { return(OrganizationId.Equals(other.OrganizationId) && SubscriptionId.Equals(other.SubscriptionId) && UserId.Equals(other.UserId) && EqualityComparer <T> .Default.Equals(EventData, other.EventData)); }
// Token: 0x06000779 RID: 1913 RVA: 0x0001D180 File Offset: 0x0001B380 public IAsyncResult BeginGetBackEndServerList(MiniRecipient miniRecipient, int maxServers, AsyncCallback callback, object state) { if (miniRecipient == null) { throw new ArgumentNullException("miniRecipient"); } if (maxServers <= 0) { throw new ArgumentException("maxServers needs to be greater than zero"); } this.database = miniRecipient.Database; this.maxServers = maxServers; OrganizationId organizationId = miniRecipient.OrganizationId; SmtpAddress primarySmtpAddress = miniRecipient.PrimarySmtpAddress; if (this.database == null) { ADUser defaultOrganizationMailbox = HttpProxyBackEndHelper.GetDefaultOrganizationMailbox(organizationId, null); if (defaultOrganizationMailbox == null || defaultOrganizationMailbox.Database == null) { ExTraceGlobals.CafeTracer.TraceError <OrganizationId>(0L, "[BackEndLocator.BeginGetBackEndServerList] Cannot find organization mailbox for organization {1}", organizationId); throw new AdUserNotFoundException(ServerStrings.ADUserNotFound); } this.database = defaultOrganizationMailbox.Database; primarySmtpAddress = defaultOrganizationMailbox.PrimarySmtpAddress; } string domainName = null; if (organizationId != null && !organizationId.Equals(OrganizationId.ForestWideOrgId)) { domainName = primarySmtpAddress.Domain; } this.serverLocator = MailboxServerLocator.Create(this.database.ObjectGuid, domainName, this.database.PartitionFQDN); bool flag = true; IAsyncResult result; try { result = this.serverLocator.BeginGetServer(callback, state); flag = false; } catch (Exception ex) { ExTraceGlobals.CafeTracer.TraceError <Exception>(0L, "[AsyncBackEndLocator.BeginGetBackEndServerList] Caught exception {0}.", ex); if (BackEndLocator.ShouldWrapInBackendLocatorException(ex)) { throw new BackEndLocatorException(ex); } throw; } finally { if (flag) { this.serverLocator.Dispose(); this.serverLocator = null; } } return(result); }
private bool TrySetExternalOrgId(OrganizationId orgId) { if (orgId.Equals(OrganizationId.ForestWideOrgId)) { this.externalOrganizationIdString = string.Empty; return(true); } ExchangeConfigurationUnit configUnitPassedToDelegate = null; Guid empty = Guid.Empty; ADOperationResult adoperationResult = ADNotificationAdapter.TryRunADOperation(delegate() { IConfigurationSession configurationSession = DirectorySessionFactory.Default.CreateTenantConfigurationSession(ConsistencyMode.IgnoreInvalid, ADSessionSettings.FromOrganizationIdWithoutRbacScopesServiceOnly(orgId), 241, "TrySetExternalOrgId", "f:\\15.00.1497\\sources\\dev\\infoworker\\src\\common\\MessageTracking\\DirectoryContext.cs"); configUnitPassedToDelegate = configurationSession.Read <ExchangeConfigurationUnit>(orgId.ConfigurationUnit); }); if (!adoperationResult.Succeeded) { TraceWrapper.SearchLibraryTracer.TraceDebug <string, Exception>(0, "Failed to get ExternalOrgId from AD. {0} Error: {1}", (adoperationResult.ErrorCode == ADOperationErrorCode.PermanentError) ? "Permanent" : "Retriable", adoperationResult.Exception); return(false); } if (configUnitPassedToDelegate == null || !Guid.TryParse(configUnitPassedToDelegate.ExternalDirectoryOrganizationId, out empty)) { TraceWrapper.SearchLibraryTracer.TraceDebug(0, "Failed read ExternalOrgId from AD Session", new object[0]); return(false); } this.externalOrganizationIdString = empty.ToString(); return(true); }
public static bool IsExternalAccess(string userId, OrganizationId userOrganization, OrganizationId currentOrganization) { if (string.IsNullOrEmpty(userId)) { return(true); } if (AuditFeatureManager.IsExternalAccessCheckOnDedicatedEnabled()) { NTAccount ntaccount = new NTAccount(AdminAuditExternalAccessDeterminer.TransformUserID(userId)); SecurityIdentifier securityIdentifier; try { securityIdentifier = (SecurityIdentifier)ntaccount.Translate(typeof(SecurityIdentifier)); } catch (IdentityNotMappedException) { ntaccount = new NTAccount(userId); try { securityIdentifier = (SecurityIdentifier)ntaccount.Translate(typeof(SecurityIdentifier)); } catch (IdentityNotMappedException) { return(true); } } bool flag; return(AdminAuditExternalAccessDeterminer.externalAccessLRUCache.Get(securityIdentifier.ToString(), out flag)); } bool flag2 = userOrganization == null || currentOrganization == null; return(!flag2 && !userOrganization.Equals(currentOrganization)); }
protected override void InternalProcessRecord() { LazilyInitialized <SharedTenantConfigurationState> currentOrgState = this.CurrentOrgState; OrganizationId currentOrganizationId = base.CurrentOrganizationId; TDataObject dataObject = base.DataObject; if (!currentOrganizationId.Equals(dataObject.OrganizationId)) { currentOrgState = new LazilyInitialized <SharedTenantConfigurationState>(delegate() { TDataObject dataObject3 = base.DataObject; return(SharedConfiguration.GetSharedConfigurationState(dataObject3.OrganizationId)); }); } if (SharedConfigurationTaskHelper.ShouldPrompt(this, this.SharedTenantConfigurationMode, currentOrgState) && !base.InternalForce) { TDataObject dataObject2 = base.DataObject; if (!base.ShouldContinue(Strings.ConfirmSharedConfiguration(dataObject2.OrganizationId.OrganizationalUnit.Name))) { TaskLogger.LogExit(); return; } } base.InternalProcessRecord(); }
private void VerifyDistributionGroups(MultiValuedProperty <RecipientIdParameter> identities, string parameterName) { if (identities == null) { return; } ADRecipient adrecipient = null; HashSet <ADObjectId> hashSet = new HashSet <ADObjectId>(); foreach (RecipientIdParameter recipientIdParameter in identities) { try { adrecipient = (ADRecipient)base.GetDataObject <ADRecipient>(recipientIdParameter, base.TenantGlobalCatalogSession, this.DataObject.OrganizationId.OrganizationalUnit, new LocalizedString?(Strings.ErrorRecipientNotFound(recipientIdParameter.ToString())), new LocalizedString?(Strings.ErrorRecipientNotUnique(recipientIdParameter.ToString()))); } catch (ManagementObjectNotFoundException exception) { base.WriteError(exception, (ErrorCategory)1003, null); } OrganizationId organizationId = this.DataObject.OrganizationId; OrganizationId organizationId2 = adrecipient.OrganizationId; if (!organizationId.Equals(organizationId2)) { base.WriteError(new SupervisionPolicyTaskException(Strings.RecipientNotFoundInOrganization(recipientIdParameter.ToString())), (ErrorCategory)1003, null); } if (!ADRecipient.IsAllowedDeliveryRestrictionGroup(adrecipient.RecipientType)) { base.WriteError(new SupervisionPolicyTaskException(Strings.SpecifiedRecipientNotDistributionGroup(recipientIdParameter.ToString())), (ErrorCategory)1003, null); } if (!hashSet.Add(adrecipient.Id)) { base.WriteError(new SupervisionPolicyTaskException(Strings.ErrorRecipientIdParamElementsNotUnique(parameterName, recipientIdParameter.ToString())), (ErrorCategory)1003, null); } } }
protected void SetCurrentOrganizationWithScopeSet(OrganizationId orgId) { if (orgId != null && !orgId.Equals(OrganizationId.ForestWideOrgId)) { base.CurrentTaskContext.ScopeSet = ScopeSet.ResolveUnderScope(orgId, base.CurrentTaskContext.ScopeSet); } base.CurrentOrganizationId = orgId; }
private bool Equals(EventHistoryTableEntity other) { return(string.Equals(PartitionKey, other.PartitionKey) && string.Equals(RowKey, other.RowKey) && Created.Equals(other.Created) && string.Equals(EventType, other.EventType) && string.Equals(OperationName, other.OperationName) && OrganizationId.Equals(other.OrganizationId) && SubscriptionId.Equals(other.SubscriptionId) && string.Equals(Data, other.Data)); }
protected override void ResolveCurrentOrgIdBasedOnIdentity(IIdentityParameter identity) { MailboxFolderIdParameter identity2 = this.Identity; if (identity2 != null && identity2.RawOwner != null && base.CurrentOrganizationId != null && base.CurrentOrganizationId.Equals(OrganizationId.ForestWideOrgId)) { OrganizationId organizationId = identity2.RawOwner.ResolveOrganizationIdBasedOnIdentity(base.ExecutingUserOrganizationId); if (organizationId != null && !organizationId.Equals(base.CurrentOrganizationId)) { base.SetCurrentOrganizationWithScopeSet(organizationId); } } }
internal static object OuOrganizationIdGetter(IPropertyBag propertyBag) { OrganizationId organizationId = (OrganizationId)ADObject.OrganizationIdGetter(propertyBag); if (organizationId.Equals(OrganizationId.ForestWideOrgId)) { ADObjectId adobjectId = ADOrganizationalUnit.ConfigurationUnitLinkGetter(propertyBag); if (adobjectId != null) { organizationId = new OrganizationId((ADObjectId)propertyBag[ADObjectSchema.Id], adobjectId); } } return(organizationId); }
// Token: 0x060005CC RID: 1484 RVA: 0x0001614C File Offset: 0x0001434C protected override void InternalProcessRecord() { TaskLogger.LogEnter(); OrganizationId currentOrganizationId = base.CurrentOrganizationId; TDataObject dataObject = this.DataObject; if (!currentOrganizationId.Equals(dataObject.OrganizationId)) { this.CurrentOrgState = new LazilyInitialized <SharedTenantConfigurationState>(delegate() { TDataObject dataObject8 = this.DataObject; return(SharedConfiguration.GetSharedConfigurationState(dataObject8.OrganizationId)); }); } if (SharedConfigurationTaskHelper.ShouldPrompt(this, this.SharedTenantConfigurationMode, this.CurrentOrgState) && !base.InternalForce) { TDataObject dataObject2 = this.DataObject; if (!base.ShouldContinue(Strings.ConfirmSharedConfiguration(dataObject2.OrganizationId.OrganizationalUnit.Name))) { TaskLogger.LogExit(); return; } } TDataObject dataObject3 = this.DataObject; if (dataObject3.IsChanged(ADObjectSchema.Id)) { IDirectorySession tenantOrTopologyConfigurationSession = DirectorySessionFactory.Default.GetTenantOrTopologyConfigurationSession(base.DomainController, true, ConsistencyMode.PartiallyConsistent, null, base.OrgWideSessionSettings, ConfigScopes.TenantSubTree, 702, "InternalProcessRecord", "f:\\15.00.1497\\sources\\dev\\Configuration\\src\\ObjectModel\\BaseTasks\\SetAdObjectTask.cs"); tenantOrTopologyConfigurationSession.UseConfigNC = ((IDirectorySession)base.DataSession).UseConfigNC; TDataObject dataObject4 = this.DataObject; ADObjectId parent = dataObject4.Id.Parent; ADRawEntry adrawEntry = tenantOrTopologyConfigurationSession.ReadADRawEntry(parent, new PropertyDefinition[] { ADObjectSchema.ExchangeVersion, ADObjectSchema.ObjectClass }); ExchangeObjectVersion exchangeObjectVersion = (ExchangeObjectVersion)adrawEntry[ADObjectSchema.ExchangeVersion]; MultiValuedProperty <string> multiValuedProperty = (MultiValuedProperty <string>)adrawEntry[ADObjectSchema.ObjectClass]; TDataObject dataObject5 = this.DataObject; if (dataObject5.ExchangeVersion.IsOlderThan(exchangeObjectVersion) && !multiValuedProperty.Contains(Organization.MostDerivedClass)) { TDataObject dataObject6 = this.DataObject; string name = dataObject6.Name; TDataObject dataObject7 = this.DataObject; base.WriteError(new TaskException(Strings.ErrorParentHasNewerVersion(name, dataObject7.ExchangeVersion.ToString(), exchangeObjectVersion.ToString())), (ErrorCategory)1004, null); } } base.InternalProcessRecord(); TaskLogger.LogExit(); }
protected virtual void ResolveCurrentOrgIdBasedOnIdentity(IIdentityParameter identity) { if (this.ShouldSupportPreResolveOrgIdBasedOnIdentity() && base.CurrentOrganizationId != null && base.CurrentOrganizationId.Equals(OrganizationId.ForestWideOrgId)) { ADIdParameter adidParameter = identity as ADIdParameter; if (adidParameter != null) { OrganizationId organizationId = adidParameter.ResolveOrganizationIdBasedOnIdentity(base.ExecutingUserOrganizationId); if (organizationId != null && !organizationId.Equals(base.CurrentOrganizationId)) { this.SetCurrentOrganizationWithScopeSet(organizationId); } } } }
// Token: 0x060003B8 RID: 952 RVA: 0x00017530 File Offset: 0x00015730 private bool TryGetMailboxAccessPartnerInfo(CallContext callContext, ADRecipient callerAdRecipient, out PartnerInfo partnerInfo, out string targetTenant) { partnerInfo = null; targetTenant = null; if (!Common.IsMultiTenancyEnabled) { return(false); } if (callContext.Users.Count != 1) { return(false); } User user = callContext.Users[0]; SmtpAddress smtpAddress = new SmtpAddress(user.Mailbox); if (!smtpAddress.IsValidAddress) { return(false); } string name = callerAdRecipient.Name; SmtpDomain smtpDomain = new SmtpDomain(smtpAddress.Domain); OrganizationId organizationId = DomainToOrganizationIdCache.Singleton.Get(smtpDomain); if (organizationId != null && !ADAccountPartitionLocator.IsKnownPartition(organizationId.PartitionId)) { organizationId = null; } OrganizationId organizationId2 = callerAdRecipient.OrganizationId; if (organizationId != null && organizationId.Equals(organizationId2)) { ExTraceGlobals.FrameworkTracer.TraceDebug <string, OrganizationId>((long)this.GetHashCode(), "The caller {0} tries to query its' own org {1}", name, organizationId2); return(false); } partnerInfo = MailboxAccessPartnerInfoCache.Singleton.Get(new MailboxAccessPartnerInfoCacheKey(callerAdRecipient.Id, organizationId2)); if (partnerInfo == PartnerInfo.Invalid) { ExTraceGlobals.FrameworkTracer.TraceDebug <string>((long)this.GetHashCode(), "The caller {0} could not be acted as mailbox access partner.", name); return(false); } if (!partnerInfo.HasPartnerRelationship(organizationId)) { ExTraceGlobals.FrameworkTracer.TraceDebug <string, OrganizationId>((long)this.GetHashCode(), "The caller {0} has no partner relationship with organization {1}", name, organizationId); return(false); } targetTenant = smtpDomain.Domain; return(true); }
private IPowerShellBudget GetBudget(HttpContext context) { if (context.User is DelegatedPrincipal) { using (new MonitoredScope("ThrottlingHttpModule", "AcquireDelegatedPrincipalBudget", HttpModuleHelper.HttpPerfMonitors)) { return(PowerShellBudget.Acquire(new DelegatedPrincipalBudgetKey((DelegatedPrincipal)context.User, BudgetType.WSMan))); } } if (context.CurrentUserToken() == null) { ExTraceGlobals.HttpModuleTracer.TraceDebug((long)this.GetHashCode(), "[ThrottlingHttpModule::GetBudget] No CAT."); return(null); } SecurityIdentifier userSid = context.CurrentUserToken().UserSid; if (userSid == null) { ExTraceGlobals.HttpModuleTracer.TraceDebug((long)this.GetHashCode(), "[ThrottlingHttpModule::GetBudget] sid = null."); return(null); } OrganizationId organization = context.CurrentUserToken().Organization; if (organization == null) { ExTraceGlobals.HttpModuleTracer.TraceDebug((long)this.GetHashCode(), "[ThrottlingHttpModule::GetBudget] orgId = null."); return(null); } ADObjectId adobjectId; if (organization.Equals(OrganizationId.ForestWideOrgId)) { ExTraceGlobals.HttpModuleTracer.TraceDebug((long)this.GetHashCode(), "[ThrottlingHttpModule::GetBudget] Forest Wide Org Id."); adobjectId = ADSystemConfigurationSession.GetRootOrgContainerIdForLocalForest(); } else { adobjectId = ADSystemConfigurationSession.GetRootOrgContainerId(organization.PartitionId.ForestFQDN, null, null); } ExTraceGlobals.HttpModuleTracer.TraceDebug <string>((long)this.GetHashCode(), "[ThrottlingHttpModule::GetBudget] rootOrgId = {0}.", (adobjectId == null) ? null : adobjectId.DistinguishedName); IPowerShellBudget result; using (new MonitoredScope("ThrottlingHttpModule", "AcquireBudget", HttpModuleHelper.HttpPerfMonitors)) { result = PowerShellBudget.Acquire(userSid, BudgetType.WSMan, ADSessionSettings.FromOrganizationIdWithoutRbacScopes(adobjectId, organization, organization, true)); } return(result); }
public bool IsUserBypassingAudit(OrganizationId organizationId, SecurityIdentifier logonSid) { Util.ThrowOnNullArgument(organizationId, "organizationId"); Util.ThrowOnNullArgument(logonSid, "logonSid"); bool flag = this.GetOrganizationCache(organizationId).IsUserBypassingAudit(logonSid); if (flag) { return(true); } if (!organizationId.Equals(OrganizationId.ForestWideOrgId)) { flag = this.GetOrganizationCache(OrganizationId.ForestWideOrgId).IsUserBypassingAudit(logonSid); } return(flag); }
private void ReadRootDomainFromDc(OrganizationId orgId) { this.rootDomain = null; if (orgId.Equals(OrganizationId.ForestWideOrgId)) { this.rootDomain = ADForest.GetLocalForest().FindRootDomain(true); } else { this.rootDomain = ADForest.GetForest(orgId.PartitionId).FindRootDomain(true); } if (this.rootDomain == null) { base.ThrowTerminatingError(new RootDomainNotFoundException(), ErrorCategory.InvalidData, null); } this.LogReadObject(this.rootDomain); }
/// <summary> /// /// </summary> /// <param name="sender"></param> /// <param name="e"></param> protected override void Page_Load(object sender, EventArgs e) { base.Page_Load(sender, e); if (!Page.IsPostBack) { DataView projectsList = new DataView(); // If filtering by user, determine which project a user belongs if (FilterByUser) { ProjectManagementDa da = new ProjectManagementDa(); string uName = new Caisis.Security.SecurityController().GetUserName(); UserDa uda = new UserDa(); int uId = uda.GetUserId(uName); projectsList = da.GetAllProjectsByUserId(uId).DefaultView; } // Else, user has access to all projects else { //Project biz = new Project(); if (String.IsNullOrEmpty(OrganizationId) || OrganizationId.Equals("-1")) { //biz.GetAll(); //projectsList = biz.DataSourceView; projectsList = BusinessObject.GetAllAsDataView <Project>(); } else { ProjectManagementDa da = new ProjectManagementDa(); projectsList = da.GetAllProjectsForOrg(Int32.Parse(OrganizationId)).DefaultView; } } // Force default sort to earliest records first //projectsList.Sort = Project.ProjectId + " ASC"; // default sort projectsList.Sort = "Title"; // SORTING DISABLED recordCount = projectsList.Count; // Bind projects to user's view BindProjectList(projectsList); } }
public static ADObjectId GetDefaultRoleAssignmentPolicy(OrganizationId orgId) { if (orgId.Equals(OrganizationId.ForestWideOrgId)) { return(null); } IConfigurationSession scopedSession = SharedConfiguration.CreateScopedToSharedConfigADSession(orgId); return(ProvisioningCache.Instance.TryAddAndGetOrganizationData <ADObjectId>(CannedProvisioningCacheKeys.MailboxRoleAssignmentPolicyCacheKey, orgId, delegate() { RoleAssignmentPolicy[] array = scopedSession.Find <RoleAssignmentPolicy>(null, QueryScope.SubTree, new ComparisonFilter(ComparisonOperator.Equal, RoleAssignmentPolicySchema.IsDefault, true), null, 1); if (array != null && array.Length > 0) { return array[0].Id; } return null; })); }
internal virtual OrganizationId ResolveOrganizationIdBasedOnIdentity(OrganizationId executingUserOrgId) { if (this.orgIdResolved) { return(this.resolvedOrganizationId); } if (!this.IsMultitenancyEnabled()) { return(OrganizationId.ForestWideOrgId); } if (executingUserOrgId != null && !executingUserOrgId.Equals(OrganizationId.ForestWideOrgId)) { return(executingUserOrgId); } ADObjectId id = null; string text; string text2; if (this.adObjectId != null) { this.resolvedOrganizationId = this.GetOrganizationId(executingUserOrgId, this.adObjectId); } else if (ADIdParameter.TryResolveCanonicalName(this.RawIdentity, out id)) { this.resolvedOrganizationId = this.GetOrganizationId(executingUserOrgId, id); } else if (this.TryParseOrganizationName(out text, out text2)) { if (this.IsWildcardDefined(text)) { this.resolvedOrganizationId = OrganizationId.ForestWideOrgId; } else { this.resolvedOrganizationId = this.GetOrganizationId(executingUserOrgId, text); } } else { this.resolvedOrganizationId = null; } this.orgIdResolved = true; return(this.resolvedOrganizationId); }
protected void ValidateCommonParamsAndSetOrg(UMDialPlanIdParameter dpParam, UMIPGatewayIdParameter gwParam, out Guid dpGuid, out Guid gwGuid, out string dpName, out string gwName) { dpGuid = Guid.Empty; gwGuid = Guid.Empty; dpName = string.Empty; gwName = string.Empty; if (dpParam == null && gwParam == null) { return; } IConfigurationSession session = this.CreateSessionToResolveConfigObjects(false); OrganizationId organizationId = null; if (dpParam != null) { UMDialPlan umdialPlan = (UMDialPlan)base.GetDataObject <UMDialPlan>(dpParam, session, null, new LocalizedString?(Strings.NonExistantDialPlan(dpParam.ToString())), new LocalizedString?(Strings.MultipleDialplansWithSameId(dpParam.ToString()))); dpGuid = umdialPlan.Guid; dpName = umdialPlan.Name; organizationId = umdialPlan.OrganizationId; } if (gwParam != null) { UMIPGateway umipgateway = (UMIPGateway)base.GetDataObject <UMIPGateway>(gwParam, session, null, new LocalizedString?(Strings.NonExistantIPGateway(gwParam.ToString())), new LocalizedString?(Strings.MultipleIPGatewaysWithSameId(gwParam.ToString()))); gwGuid = umipgateway.Guid; gwName = umipgateway.Name; if (organizationId != null && !organizationId.Equals(umipgateway.OrganizationId)) { base.WriteError(new InvalidParameterException(Strings.MismatchedOrgInDPAndGW(dpParam.ToString(), gwParam.ToString())), ErrorCategory.InvalidArgument, null); } else { organizationId = umipgateway.OrganizationId; } } if (this.Organization != null) { organizationId != null; } if (organizationId != null) { base.CurrentOrganizationId = organizationId; } }
public void BroadcastInvalidationMessage(OrganizationId orgId, Guid[] keys) { Guid orgId2 = Guid.Empty; if (orgId != null && !orgId.Equals(OrganizationId.ForestWideOrgId)) { orgId2 = orgId.ConfigurationUnit.ObjectGuid; if (orgId2.Equals(Guid.Empty)) { return; } } InvalidationMessage invalidationMessage = new InvalidationMessage(orgId2, keys); byte[] msg = invalidationMessage.ToSendMessage(); lock (this.sendSocketLockObj) { this.SendMessage(this.msgSendSocket, msg, this.msgSendEndPoint); } }
private static IList <BackEndServer> GetBackEndServerListForDatabase(ADObjectId database, OrganizationId organizationId, SmtpAddress primarySmtpAddress, int maxServers) { if (maxServers == 0) { return(new BackEndServer[0]); } if (database == null) { return(BackEndLocator.GetBackEndServerListForOrganization(organizationId, maxServers)); } string domainName = null; if (organizationId != null && !organizationId.Equals(OrganizationId.ForestWideOrgId)) { domainName = primarySmtpAddress.Domain; } IList <BackEndServer> result; using (MailboxServerLocator mailboxServerLocator = MailboxServerLocator.Create(database.ObjectGuid, domainName, database.PartitionFQDN)) { BackEndServer server = mailboxServerLocator.GetServer(); ExTraceGlobals.CafeTracer.TraceDebug <BackEndServer, ADObjectId>(0L, "[BackEndLocator.GetBackEndServerByDatabase] Returns back end server {0} for database {1}", server, database); IList <BackEndServer> list = new List <BackEndServer>(); list.Add(server); int num = 1; foreach (KeyValuePair <Guid, BackEndServer> keyValuePair in mailboxServerLocator.AvailabilityGroupServers) { if (num >= maxServers) { break; } if (!string.Equals(keyValuePair.Value.Fqdn, server.Fqdn, StringComparison.OrdinalIgnoreCase)) { list.Add(keyValuePair.Value); num++; } } result = list; } return(result); }
// Token: 0x06000452 RID: 1106 RVA: 0x0000F624 File Offset: 0x0000D824 internal static OrganizationIdParameter ResolveTargetOrganizationIdParameter(OrganizationIdParameter organizationParameter, IIdentityParameter identity, OrganizationId currentOrganizationId, Task.ErrorLoggerDelegate errorHandler, Task.TaskWarningLoggingDelegate warningHandler) { OrganizationIdParameter organizationIdParameter = null; if (identity != null) { if (identity is MailPublicFolderIdParameter) { organizationIdParameter = (identity as MailPublicFolderIdParameter).Organization; } else if (identity is PublicFolderIdParameter) { organizationIdParameter = (identity as PublicFolderIdParameter).Organization; } } if (!currentOrganizationId.Equals(OrganizationId.ForestWideOrgId)) { if (organizationIdParameter != null) { errorHandler(new ManagementObjectNotFoundException(Strings.ErrorManagementObjectNotFound(identity.ToString())), ExchangeErrorCategory.Client, identity); } } else { if (organizationParameter != null) { if (organizationIdParameter != null) { warningHandler(Strings.WarningDuplicateOrganizationSpecified(organizationParameter.ToString(), organizationIdParameter.ToString())); } organizationIdParameter = organizationParameter; } if (organizationIdParameter == null && !(identity is MailPublicFolderIdParameter)) { errorHandler(new ErrorMissOrganizationException(), ExchangeErrorCategory.Client, null); } } return(organizationIdParameter); }
private static BackEndServer GetBackEndServerByDatabase(ADObjectId database, OrganizationId organizationId, SmtpAddress primarySmtpAddress) { if (database == null) { return(BackEndLocator.GetBackEndServerByOrganization(organizationId)); } string domainName = null; if (organizationId != null && !organizationId.Equals(OrganizationId.ForestWideOrgId)) { domainName = primarySmtpAddress.Domain; } BackEndServer result; using (MailboxServerLocator mailboxServerLocator = MailboxServerLocator.Create(database.ObjectGuid, domainName, database.PartitionFQDN)) { BackEndServer server = mailboxServerLocator.GetServer(); ExTraceGlobals.CafeTracer.TraceDebug <BackEndServer, ADObjectId>(0L, "[BackEndLocator.GetBackEndServerByDatabase] Returns back end server {0} for database {1}", server, database); result = server; } return(result); }