Esempio n. 1
0
 public static void InitializeDataObjectFromMetadata(FederationTrust federationTrust, PartnerFederationMetadata partnerFederationMetadata, WriteWarningDelegate writeWarning)
 {
     if (writeWarning == null)
     {
         writeWarning = new WriteWarningDelegate(LivePartnerFederationMetadata.NullWriteWarning);
     }
     federationTrust.PolicyReferenceUri           = partnerFederationMetadata.PolicyReferenceUri;
     federationTrust.TokenIssuerMetadataEpr       = partnerFederationMetadata.TokenIssuerMetadataEpr;
     federationTrust.TokenIssuerUri               = partnerFederationMetadata.TokenIssuerUri;
     federationTrust.TokenIssuerEpr               = partnerFederationMetadata.TokenIssuerEpr;
     federationTrust.WebRequestorRedirectEpr      = partnerFederationMetadata.WebRequestorRedirectEpr;
     federationTrust.TokenIssuerCertReference     = partnerFederationMetadata.TokenIssuerCertReference;
     federationTrust.TokenIssuerPrevCertReference = partnerFederationMetadata.TokenIssuerPrevCertReference;
     if (partnerFederationMetadata.TokenIssuerCertificate != null && partnerFederationMetadata.TokenIssuerPrevCertificate != null && partnerFederationMetadata.TokenIssuerPrevCertificate.NotAfter > partnerFederationMetadata.TokenIssuerCertificate.NotAfter)
     {
         X509Certificate2 tokenIssuerCertificate = partnerFederationMetadata.TokenIssuerCertificate;
         partnerFederationMetadata.TokenIssuerCertificate     = partnerFederationMetadata.TokenIssuerPrevCertificate;
         partnerFederationMetadata.TokenIssuerPrevCertificate = tokenIssuerCertificate;
     }
     if (partnerFederationMetadata.TokenIssuerCertificate != null)
     {
         if (partnerFederationMetadata.TokenIssuerCertificate.NotAfter > DateTime.UtcNow)
         {
             if (federationTrust.TokenIssuerCertificate == null || !federationTrust.TokenIssuerCertificate.Thumbprint.Equals(partnerFederationMetadata.TokenIssuerCertificate.Thumbprint, StringComparison.OrdinalIgnoreCase))
             {
                 federationTrust.TokenIssuerCertificate = partnerFederationMetadata.TokenIssuerCertificate;
             }
         }
         else
         {
             writeWarning(Strings.WarningIssuerCertificateExpired(partnerFederationMetadata.TokenIssuerCertificate.Thumbprint));
             if (federationTrust.TokenIssuerCertificate != null)
             {
                 federationTrust.TokenIssuerCertificate = null;
             }
         }
     }
     if (partnerFederationMetadata.TokenIssuerPrevCertificate != null)
     {
         if (partnerFederationMetadata.TokenIssuerPrevCertificate.NotAfter > DateTime.UtcNow)
         {
             if (federationTrust.TokenIssuerPrevCertificate == null || !federationTrust.TokenIssuerPrevCertificate.Thumbprint.Equals(partnerFederationMetadata.TokenIssuerPrevCertificate.Thumbprint, StringComparison.OrdinalIgnoreCase))
             {
                 federationTrust.TokenIssuerPrevCertificate = partnerFederationMetadata.TokenIssuerPrevCertificate;
             }
         }
         else
         {
             writeWarning(Strings.WarningIssuerCertificateExpired(partnerFederationMetadata.TokenIssuerPrevCertificate.Thumbprint));
             if (federationTrust.TokenIssuerPrevCertificate != null)
             {
                 federationTrust.TokenIssuerPrevCertificate = null;
             }
         }
     }
     if (federationTrust.TokenIssuerCertificate == null && federationTrust.TokenIssuerPrevCertificate != null)
     {
         federationTrust.TokenIssuerCertificate     = federationTrust.TokenIssuerPrevCertificate;
         federationTrust.TokenIssuerPrevCertificate = null;
     }
     if (federationTrust.TokenIssuerCertificate == null && federationTrust.TokenIssuerPrevCertificate == null)
     {
         throw new FederationMetadataException(Strings.NoValidIssuerCertificate);
     }
 }
Esempio n. 2
0
        internal static MultiValuedProperty <ADObjectId> ResolveSiteMailboxOwnersReferenceParameter(IList <RecipientIdParameter> recipientIdParameters, IRecipientSession recipientSession, DataAccessHelper.CategorizedGetDataObjectDelegate getDataObject, WriteWarningDelegate writeWarning)
        {
            if (recipientIdParameters == null || recipientIdParameters.Count == 0)
            {
                return(null);
            }
            if (recipientSession == null)
            {
                throw new ArgumentNullException("recipientSession");
            }
            MultiValuedProperty <ADObjectId> multiValuedProperty = new MultiValuedProperty <ADObjectId>();

            foreach (RecipientIdParameter recipientIdParameter in recipientIdParameters)
            {
                ADRecipient adrecipient = null;
                try
                {
                    adrecipient = (ADRecipient)getDataObject(recipientIdParameter, recipientSession, null, null, new LocalizedString?(Strings.ErrorRecipientNotFound(recipientIdParameter.ToString())), new LocalizedString?(Strings.ErrorRecipientNotUnique(recipientIdParameter.ToString())), ExchangeErrorCategory.Client);
                }
                catch (ManagementObjectNotFoundException ex)
                {
                    writeWarning(new LocalizedString(ex.Message));
                    continue;
                }
                catch (ManagementObjectAmbiguousException ex2)
                {
                    writeWarning(new LocalizedString(ex2.Message));
                    continue;
                }
                if (adrecipient != null && (adrecipient.RecipientType == RecipientType.User || TeamMailboxMembershipHelper.IsUserQualifiedType(adrecipient)))
                {
                    multiValuedProperty.Add((ADObjectId)adrecipient.Identity);
                }
            }
            return(multiValuedProperty);
        }