Почему x509Store.Certificates.Find возвращает пустую коллекцию, даже если сертификат существует?C#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Почему x509Store.Certificates.Find возвращает пустую коллекцию, даже если сертификат существует?

Сообщение Anonymous »

У меня есть сертификат X509, хранящийся в хранилище сертификатов под моей системной учетной записью, который я проверил визуально с помощью «Выполнить» -> mmc.
Следующий код успешно отображает мой сертификат:

Код: Выделить всё

using (var x509Store = new X509Store(StoreName.My, StoreLocation.LocalMachine))
{
x509Store.Open(OpenFlags.ReadOnly);

X509Certificate2Collection certificateCollection1 = x509Store.Certificates;

Console.WriteLine($"Listing all available certificates count: {certificateCollection1.Count}");

foreach (var certificate2 in certificateCollection1)
{
Console.WriteLine($"Subject: {certificate2.Subject}");
Console.WriteLine($"Issuer: {certificate2.Issuer}");
Console.WriteLine($"Thumbprint: {certificate2.Thumbprint}");
Console.WriteLine("-------------------------------");

Однако, когда я использую любой из следующих методов:

Код: Выделить всё

certificateCollection = x509Store.Certificates.Find(X509FindType.FindBySubjectDistinguishedName, certificate2.Subject, true);
или

Код: Выделить всё

certificateCollection = x509Store.Certificates.Find(X509FindType.FindBySubjectName, certificate2.GetNameInfo(X509NameType.SimpleName, false), true);
и затем, когда я пытаюсь отобразить свое свойство certificatecollection, счетчик равен 0

Код: Выделить всё

Console.WriteLine($"Listing all available internal certificates count: {certificateCollection.Count}");
writer.WriteLine($"Listing all available internal certificates count: {certificateCollection.Count}");
Я использую то же имя субъекта или имя сертификата для отображения списка сертификатов, но он возвращает 0. Это отлично работает на моем компьютере, но когда тот же код развертывается в рабочей среде машины, некоторые из них не могут найти сертификат. Когда сертификат присутствует на компьютере и для поиска используется то же имя (я уверен, что не ошибся, поскольку использую ту же переменную, возвращаемую X509Certificate2Collection), он возвращает пустую коллекцию.
Мне хотелось бы понять, что я делаю не так с методом x509Store.Certificates.Find.

Подробнее здесь: https://stackoverflow.com/questions/786 ... hen-the-ce
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Почему x509Store.Certificates.Find возвращает пустую коллекцию, даже если сертификат существует?
    Anonymous » » в форуме C#
    0 Ответы
    21 Просмотры
    Последнее сообщение Anonymous
  • Сертификат SSL не в X509Store при загрузке на веб -сайт Azure
    Anonymous » » в форуме C#
    0 Ответы
    14 Просмотры
    Последнее сообщение Anonymous
  • В C# DirectoryEntry возвращает пустую коллекцию AuditRules, даже если правила аудита существуют.
    Гость » » в форуме C#
    0 Ответы
    12 Просмотры
    Последнее сообщение Гость
  • Laravel take() возвращает пустую коллекцию для отношений
    Anonymous » » в форуме Php
    0 Ответы
    16 Просмотры
    Последнее сообщение Anonymous
  • Laravel take() возвращает пустую коллекцию для отношений
    Anonymous » » в форуме Php
    0 Ответы
    21 Просмотры
    Последнее сообщение Anonymous

Вернуться в «C#»