Ejemplo n.º 1
0
        public static IList GetAddedFederatedDomains(object originalAccountNS, object accountNS, object federatedDomains)
        {
            SmtpDomain rhs        = originalAccountNS as SmtpDomain;
            SmtpDomain smtpDomain = accountNS as SmtpDomain;
            MultiValuedProperty <FederatedDomain> multiValuedProperty = federatedDomains as MultiValuedProperty <FederatedDomain>;
            List <SmtpDomain> list = new List <SmtpDomain>();

            if (multiValuedProperty != null && smtpDomain != null)
            {
                IList list2 = multiValuedProperty.Added;
                if (!smtpDomain.Equals(rhs))
                {
                    list2 = multiValuedProperty;
                }
                foreach (object obj in list2)
                {
                    FederatedDomain federatedDomain = (FederatedDomain)obj;
                    if (!federatedDomain.Domain.Equals(smtpDomain))
                    {
                        list.Add(federatedDomain.Domain);
                    }
                }
            }
            return(list.ToArray());
        }
Ejemplo n.º 2
0
        private static bool FederatedDomainsContains(object[] fedDomainsList, SmtpDomain domain)
        {
            bool result = false;

            if (fedDomainsList != null)
            {
                foreach (FederatedDomain federatedDomain in fedDomainsList)
                {
                    if (domain.Equals(federatedDomain.Domain))
                    {
                        result = true;
                        break;
                    }
                }
            }
            return(result);
        }
Ejemplo n.º 3
0
        private FederatedOrganizationIdWithDomainStatus CreatePresentationObject(FederatedOrganizationId fedOrgId, bool includeExtendedDomainInfo)
        {
            FederatedOrganizationIdWithDomainStatus federatedOrganizationIdWithDomainStatus = new FederatedOrganizationIdWithDomainStatus(fedOrgId);

            if (fedOrgId.DelegationTrustLink == null)
            {
                return(federatedOrganizationIdWithDomainStatus);
            }
            FederationTrust federationTrust = this.ConfigurationSession.Read <FederationTrust>(fedOrgId.DelegationTrustLink);

            if (federationTrust == null)
            {
                fedOrgId.DelegationTrustLink = ADObjectIdResolutionHelper.ResolveDN(fedOrgId.DelegationTrustLink);
                ADSessionSettings             sessionSettings = ADSessionSettings.FromOrganizationIdWithoutRbacScopes(ADSystemConfigurationSession.GetRootOrgContainerIdForLocalForest(), OrganizationId.ForestWideOrgId, null, false);
                ITopologyConfigurationSession topologyConfigurationSession = DirectorySessionFactory.Default.CreateTopologyConfigurationSession(ConsistencyMode.IgnoreInvalid, sessionSettings, 147, "CreatePresentationObject", "f:\\15.00.1497\\sources\\dev\\Management\\src\\Management\\SystemConfigurationTasks\\Federation\\GetFederatedOrganizationIdentifier.cs");
                federationTrust = topologyConfigurationSession.Read <FederationTrust>(fedOrgId.DelegationTrustLink);
                if (federationTrust == null)
                {
                    return(federatedOrganizationIdWithDomainStatus);
                }
            }
            List <AcceptedDomain> allFederatedDomains = this.GetAllFederatedDomains(fedOrgId);

            if (allFederatedDomains.Count == 0)
            {
                return(federatedOrganizationIdWithDomainStatus);
            }
            foreach (AcceptedDomain acceptedDomain in allFederatedDomains)
            {
                if (acceptedDomain.IsDefaultFederatedDomain)
                {
                    federatedOrganizationIdWithDomainStatus.DefaultDomain = new SmtpDomain(acceptedDomain.DomainName.Domain);
                    break;
                }
            }
            MultiValuedProperty <FederatedDomain> multiValuedProperty = new MultiValuedProperty <FederatedDomain>();

            if (!includeExtendedDomainInfo)
            {
                foreach (AcceptedDomain acceptedDomain2 in allFederatedDomains)
                {
                    multiValuedProperty.Add(new FederatedDomain(new SmtpDomain(acceptedDomain2.DomainName.Domain)));
                }
                federatedOrganizationIdWithDomainStatus.Domains = multiValuedProperty;
                return(federatedOrganizationIdWithDomainStatus);
            }
            FederationProvision federationProvision = FederationProvision.Create(federationTrust, this);

            base.WriteVerbose(Strings.GetFedDomainStatusInfo(FederatedOrganizationId.AddHybridConfigurationWellKnownSubDomain(fedOrgId.AccountNamespace.Domain)));
            DomainState state = DomainState.Unknown;

            try
            {
                state = federationProvision.GetDomainState(FederatedOrganizationId.AddHybridConfigurationWellKnownSubDomain(fedOrgId.AccountNamespace.Domain));
            }
            catch (LocalizedException ex)
            {
                this.WriteError(new CannotGetDomainStatusFromPartnerSTSException(fedOrgId.AccountNamespace.ToString(), federationTrust.ApplicationIdentifier, ex.Message), ErrorCategory.ResourceUnavailable, null, false);
            }
            multiValuedProperty.Add(new FederatedDomain(fedOrgId.AccountNamespace, state));
            foreach (AcceptedDomain acceptedDomain3 in allFederatedDomains)
            {
                SmtpDomain smtpDomain = new SmtpDomain(acceptedDomain3.DomainName.Domain);
                if (!smtpDomain.Equals(fedOrgId.AccountNamespace))
                {
                    multiValuedProperty.Add(new FederatedDomain(smtpDomain));
                }
            }
            federatedOrganizationIdWithDomainStatus.Domains = multiValuedProperty;
            return(federatedOrganizationIdWithDomainStatus);
        }
Ejemplo n.º 4
0
 public static bool AreEqual(SmtpDomain a, SmtpDomain b)
 {
     return(a == b || (a != null && b != null && a.Equals(b)));
 }