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); } }
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); }