2010-01-04 1 views
7

Я хочу установить сертификат на машину, если он еще не установлен. Я попытался проверить, содержит ли хранилище сертификат, но как-то мой магазин всегда пуст. Я проверил папку «Промежуточные центры сертификации» и обнаружил там 18 сертификатов. Итак, почему этот код пишет 0?Как читать сертификаты из моего магазина сертификатов?

X509Store store = new X509Store(StoreName.CertificateAuthority, StoreLocation.LocalMachine); 
Console.WriteLine(store.Certificates.Count); 

Я также попробовал StoreLocation.CurrentUser. Что я делаю не так?

ответ

8

Прежде чем вы сможете получить доступ к сертификатам, вам необходимо позвонить по номеру store.Open(OpenFlags.ReadWrite);.

0

Возможным объяснением может быть то, что процесс, выполняющий этот код, может не иметь разрешений для этого конкретного хранилища.

Магазин Cert действительно представляет собой обертку вокруг специальной части файловой системы, и все сертификаты - это действительно просто файлы. Все они имеют списки контроля доступа (ACL), поэтому, если у вас нет прав, вы не можете их видеть.

Вы можете легко проверить, является ли это вашей проблемой, запустив код с помощью Administrator priviliges (помните о UAC, хотя).

 Смежные вопросы

  • Нет связанных вопросов^_^