Как читать сертификаты из моего хранилища сертификатов?
Я хочу установить сертификат на машину, если он еще не установлен. Я попытался проверить, содержит ли магазин сертификат, но почему-то мой магазин всегда пуст. Я проверил "власти промежуточными папку сертификации" и нашли 18 сертификаты есть. Так почему же этот код пишет 0?
X509Store store = new X509Store(StoreName.CertificateAuthority, StoreLocation.LocalMachine);
Console.WriteLine(store.Certificates.Count);
Я также попробовал StoreLocation.Текущий пользователь. Что я делаю не так?
2 ответов
нужно позвонить store.Open(OpenFlags.ReadWrite);
прежде чем вы сможете получить доступ к сертификатам.
одним из возможных объяснений может быть то, что процесс, который запускает этот код, может не иметь разрешений для этого конкретного хранилища.
хранилище сертификатов-это просто оболочка вокруг специальной части файловой системы, и все сертификаты-это просто файлы. Все они имеют списки управления доступом (ACLs), поэтому, если у вас нет правильных разрешений, вы не можете их видеть.
вы можете легко проверить, если это ваша проблема, запустив код с прав администратора (быть однако известно о UAC).