public IFederationInformation GetFederationInformation(string domainName) { SessionParameters sessionParameters = new SessionParameters(); sessionParameters.Set("DomainName", domainName); sessionParameters.Set("BypassAdditionalDomainValidation", true); Dictionary <string, object> dictionary = null; try { dictionary = this.RemotePowershellSession.GetPowershellUntypedObjectAsMembers("Get-FederationInformation", null, sessionParameters); } catch { } if (dictionary != null) { FederationInformation federationInformation = new FederationInformation(); object value; if (dictionary.TryGetValue("TargetAutodiscoverEpr", out value)) { federationInformation.TargetAutodiscoverEpr = TaskCommon.ToStringOrNull(value); } if (dictionary.TryGetValue("TargetApplicationUri", out value)) { federationInformation.TargetApplicationUri = TaskCommon.ToStringOrNull(value); } return(federationInformation); } return(null); }
private SessionParameters BuildParameters(IOnPremisesOrganization configuration) { SessionParameters sessionParameters = new SessionParameters(); sessionParameters.Set <SmtpDomain>("HybridDomains", configuration.HybridDomains, (SmtpDomain d) => d.Domain); sessionParameters.Set("InboundConnector", TaskCommon.ToStringOrNull(configuration.InboundConnector)); sessionParameters.Set("OutboundConnector", TaskCommon.ToStringOrNull(configuration.OutboundConnector)); sessionParameters.Set("OrganizationRelationship", TaskCommon.ToStringOrNull(configuration.OrganizationRelationship)); sessionParameters.Set("OrganizationName", configuration.OrganizationName); return(sessionParameters); }
public void SetReceiveConnector(IReceiveConnector configuration) { SessionParameters sessionParameters = new SessionParameters(); if (configuration.Identity != null) { sessionParameters.Set("Identity", configuration.Identity.ToString()); } sessionParameters.Set("TLSCertificateName", TaskCommon.ToStringOrNull(configuration.TlsCertificateName)); sessionParameters.Set("TLSDomainCapabilities", TaskCommon.ToStringOrNull(configuration.TlsDomainCapabilities)); base.RemotePowershellSession.RunOneCommand("Set-ReceiveConnector", sessionParameters, false); }
private SessionParameters SetSendConnectorParameters(ISendConnector configuration) { SessionParameters sessionParameters = new SessionParameters(); sessionParameters.Set("Name", configuration.Name); sessionParameters.Set <AddressSpace>("AddressSpaces", configuration.AddressSpaces); sessionParameters.Set <ADObjectId>("SourceTransportServers", configuration.SourceTransportServers); sessionParameters.Set("DNSRoutingEnabled", configuration.DNSRoutingEnabled); sessionParameters.Set <SmartHost>("SmartHosts", configuration.SmartHosts); sessionParameters.Set("TLSDomain", configuration.TlsDomain); sessionParameters.Set("RequireTLS", configuration.RequireTLS); sessionParameters.Set("TLSAuthLevel", (Enum)configuration.TlsAuthLevel); sessionParameters.Set("ErrorPolicies", configuration.ErrorPolicies); sessionParameters.Set("TLSCertificateName", TaskCommon.ToStringOrNull(configuration.TlsCertificateName)); sessionParameters.Set("CloudServicesMailEnabled", configuration.CloudServicesMailEnabled); sessionParameters.Set("Fqdn", configuration.Fqdn); return(sessionParameters); }
private bool NeedProvisionOrganizationRelationship(ICommonSession session, OrganizationRelationship existingOrgRel, IFederationInformation federationInfo, IEnumerable <SmtpDomain> domains, string relationshipName) { return(existingOrgRel == null || !TaskCommon.ContainsSame <SmtpDomain>(existingOrgRel.DomainNames, domains) || (this.RequiresFederationTrust() && (!string.Equals(TaskCommon.ToStringOrNull(existingOrgRel.TargetApplicationUri), federationInfo.TargetApplicationUri, StringComparison.InvariantCultureIgnoreCase) || !string.Equals(TaskCommon.ToStringOrNull(existingOrgRel.TargetAutodiscoverEpr), federationInfo.TargetAutodiscoverEpr, StringComparison.InvariantCultureIgnoreCase)))); }
private bool CheckTaskPrerequisites(ITaskContext taskContext) { this.Reset(); if (this.RequiresFederationTrust()) { string value = Configuration.SignupDomainSuffix(taskContext.HybridConfigurationObject.ServiceInstance); foreach (AutoDiscoverSmtpDomain autoDiscoverSmtpDomain in this.HybridDomains) { if (!autoDiscoverSmtpDomain.Domain.EndsWith(value, StringComparison.InvariantCultureIgnoreCase) && autoDiscoverSmtpDomain.Domain.Length <= 32) { this.accountNamespace = autoDiscoverSmtpDomain.Domain; break; } } if (string.IsNullOrEmpty(this.accountNamespace)) { base.Logger.LogInformation(HybridStrings.HybridInfoTaskLogTemplate(base.Name, HybridStrings.ErrorAccountNamespace)); base.AddLocalizedStringError(HybridStrings.ErrorAccountNamespace); return(false); } int num = base.OnPremisesSession.GetFederationTrust().Count <IFederationTrust>(); if (num == 0) { base.Logger.LogInformation(HybridStrings.HybridInfoTaskLogTemplate(base.Name, Strings.ErrorFederationTrustNotFound(""))); base.AddLocalizedStringError(HybridStrings.ErrorNoFederationTrustFound); return(false); } if (num > 1) { base.Logger.LogInformation(HybridStrings.HybridInfoTaskLogTemplate(base.Name, HybridStrings.ErrorMultipleFederationTrusts)); base.AddLocalizedStringError(HybridStrings.ErrorMultipleFederationTrusts); return(false); } IFederatedOrganizationIdentifier federatedOrganizationIdentifier = base.OnPremisesSession.GetFederatedOrganizationIdentifier(); if (federatedOrganizationIdentifier == null) { this.updateOnPremisesFedOrgId = true; } else if (federatedOrganizationIdentifier.AccountNamespace == null || string.IsNullOrEmpty(federatedOrganizationIdentifier.AccountNamespace.Domain)) { this.updateOnPremisesFedOrgId = true; } else { if (!federatedOrganizationIdentifier.Enabled) { base.Logger.LogInformation(HybridStrings.HybridInfoTaskLogTemplate(base.Name, HybridStrings.ErrorFederatedIdentifierDisabled)); base.AddLocalizedStringError(HybridStrings.ErrorFederatedIdentifierDisabled); return(false); } this.accountNamespace = federatedOrganizationIdentifier.AccountNamespace.Domain.Replace(FederatedOrganizationId.HybridConfigurationWellKnownSubDomain + ".", string.Empty); if (!string.Equals(TaskCommon.ToStringOrNull(federatedOrganizationIdentifier.DelegationTrustLink), Configuration.FederatedTrustIdentity)) { this.updateOnPremisesFedOrgId = true; } else { this.updateOnPremisesFedOrgId = false; using (IEnumerator <string> enumerator2 = (from d in this.HybridDomains select d.Domain).GetEnumerator()) { while (enumerator2.MoveNext()) { string hybridDomain = enumerator2.Current; if (!federatedOrganizationIdentifier.Domains.Any((FederatedDomain d) => string.Equals(d.Domain.Domain, hybridDomain, StringComparison.InvariantCultureIgnoreCase))) { this.addOnPremisesFedDomains.Add(hybridDomain); } } } } if (!TaskCommon.AreEqual(federatedOrganizationIdentifier.DefaultDomain, this.AutoDiscoverHybridDomain)) { this.updateOnPremisesFedOrgId = true; } } if (this.updateOnPremisesFedOrgId) { foreach (string text in from d in this.HybridDomains select d.Domain) { if (!text.Equals(this.accountNamespace, StringComparison.InvariantCultureIgnoreCase)) { this.addOnPremisesFedDomains.Add(text); } } } IFederatedOrganizationIdentifier federatedOrganizationIdentifier2 = base.TenantSession.GetFederatedOrganizationIdentifier(); string text2 = (federatedOrganizationIdentifier2 != null && federatedOrganizationIdentifier2.DefaultDomain != null) ? federatedOrganizationIdentifier2.DefaultDomain.ToString() : null; if (text2 == null || !text2.Equals(this.TenantCoexistenceDomain, StringComparison.InvariantCultureIgnoreCase)) { this.updateTenantFedOrgId = true; } } return(true); }