c# - 如何在c#中访问具有相同通用名称的2个证书中的最新证书
问题描述
如何从 c# 中的 windows 证书存储中访问具有相同通用名称的 2 个证书中的最新证书或稍后将过期的证书。我正在使用 X509Store.Certificates.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;
}
推荐阅读
- java - 尝试将数据从Intent迁移到ListView,但出现了一些错误
- javascript - 如何计算网页中的字符数?
- java - 用于异步“多部分形式”文件上传的 Java 库?
- selenium - Selenium 无法与 context_click 一起正常工作并单击
- react-native - 如何在 React Native 中禁用警告?
- python - 如何从 Pandas 中的 CSV 打印某些行
- angular - 在模式弹出窗口中以编程方式打开 PrimeNG 日历
- python - 带有列表元素的循环实例方法
- nfc - 非接触式签证申请没有获得 AFL?
- c++ - 使用 Boost Python 有条件地添加模块