Как получить доступ к последнему сертификату среди 2 сертификатов с одинаковым общим именем в c# - PullRequest
1 голос
/ 19 февраля 2020

Как получить доступ к самому последнему сертификату или сертификату, срок действия которого истекает позже, среди 2 сертификатов с одинаковым общим именем из windows хранилища сертификатов в c#. Я использую X509Store.Certificates.Find для получения сертификатов, но он возвращает мне список сертификатов, и они имеют одинаковое имя CN, но я хочу последний.

PS: я не хочу получать к нему доступ по отпечатку, потому что мне приходится менять его каждый раз, когда истекает срок действия сертификата

1 Ответ

0 голосов
/ 25 февраля 2020

Следующая функция примет массив сертификатов и вернет тот, срок действия которого истек последним. Это достигается путем создания упорядоченного списка сертификатов в порядке убывания на основе срока годности.

Функция не делает никаких предположений о статусе действительности каждого сертификата.

public Certificate getLongestLastingCertificate(Certificate[] certs)
{
    Certificate longetsLastingCert = null;
    if (certs != null)
    {
        if (certs.Count > 0)
        {
            longetsLastingCert  = certs.OrderByDescending(o => o.GetExpirationDate()).First();
        }
    }
    return longetsLastingCert;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...