本文整理汇总了C#中System.Security.Cryptography.X509Certificates.X509Certificate2Collection.FindByName方法的典型用法代码示例。如果您正苦于以下问题:C# X509Certificate2Collection.FindByName方法的具体用法?C# X509Certificate2Collection.FindByName怎么用?C# X509Certificate2Collection.FindByName使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类System.Security.Cryptography.X509Certificates.X509Certificate2Collection
的用法示例。
在下文中一共展示了X509Certificate2Collection.FindByName方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: ResolveIssuers
void ResolveIssuers(X509Certificate2 certificate, X509Certificate2Collection issuers, int chainLength)
{
//
// only look at simpleNames because intermediates are always going to be org-level, not email, certs
//
string issuerName = certificate.GetNameInfo(X509NameType.SimpleName, true); // true == "for issuer"
//
// If the issuer name matches the Cert name, we have a self-signed cert
//
if (certificate.MatchName(issuerName))
{
return;
}
//
// If the issuer is already known, then we are good
//
if (issuers.FindByName(issuerName) != null)
{
return;
}
if (chainLength == m_maxIssuerChainLength)
{
//
// Chain too long. Ignore...
//
return;
}
//
// Retrieve the issuer's certificate
//
X509Certificate2Collection issuerCertificates = m_certResolver.SafeGetCertificates(certificate.ExtractEmailNameOrName(true));
if (CollectionExtensions.IsNullOrEmpty(issuerCertificates))
{
return;
}
//
// Recursively fetch the issuers who issued this set of certificates
//
foreach (X509Certificate2 issuerCertificate in issuerCertificates)
{
if (issuerCertificate.MatchName(issuerName) && !issuers.ContainsThumbprint(issuerCertificate.Thumbprint))
{
//
// New issuer
//
issuers.Add(issuerCertificate);
//
// And keep working up the chain
//
this.ResolveIssuers(issuerCertificate, issuers, chainLength + 1);
}
}
}