如何访问c#中windows证书存储中具有相同通用名称的两个证书中的最新证书或稍后过期的证书。我正在使用X509Store。证书。Find获取证书,但它会返回一个证书列表,它们有相同的CN名称,但我想要最新的。
PS:我不想通过指纹访问它,因为每次证书到期时我都必须更改它
以下函数将接受一组证书并返回最后过期的证书。它通过根据过期日期按降序创建一个有序的证书列表来实现这一点。
该函数不对每个证书的有效性状态进行假设。
public Certificate getLongestLastingCertificate(Certificate[] certs)
{
Certificate longetsLastingCert = null;
if (certs != null)
{
if (certs.Count > 0)
{
longetsLastingCert = certs.OrderByDescending(o => o.GetExpirationDate()).First();
}
}
return longetsLastingCert;
}