Мотивация
Я хочу получать и просматривать сертификаты из Windows CA на локальном компьютере. Я не хочу получать доступ к броузер-ключам машины, но Windows CA (Центр сертификации Windows (служба)).
Я хочу сделать это в C # -Code.
Мое расследование до сих пор :
Я нашел несколько примеров, которые используют следующую строку:
ICertView2 certView = new CERTADMINLib.CCertView();
...
Я думаю, что могу использовать эту строку и структуру ICertView2, я достиг своей цели.
Если записать эту строку в мой C # -код в Visual Studio, это говорит мне, что она не знает ICertView2 и CERTADMINLib.
Так что, если поиск в Интернете снова и выяснил, мне нужно импортировать ссылку. Мне нужна библиотека COM certadmin.dll, которая, к счастью, существует в моей папке C: \ Windows \ System32.
Поэтому я попытался добавить ссылку на Solutionexplorer-> Project-> References-> Add Reference-> COM. Но он там не указан, только похожая библиотека называется " CertCli 1.0 Type Library ". Я добавил это, а также смог набрать
using CERTCLIENTLib;
но, к сожалению, необходимого класса " ICertView2 " там нет.
Если я наберу
using CERTADMINLib;
, который должен быть напечатан, чтобы иметь возможность использовать ICertView2, Visual Studio говорит мне, что он также не знает " CERTADMINLib ".
Далее я обнаружил подсказки в сети, что нужно заранее зарегистрировать certadm.dll, чтобы сделать его доступным в Visual Studio. Я пытался зарегистрировать dll-файл, но он не работает.
Если я вызову следующую команду:
C:\Windows\System32>regsvr32.exe C:\Windows\System32\certadm.dll
и получите диалоговое окно, сообщающее мне следующее:
'Ошибка при загрузке модуля "C: \ Windows \ System32 \ certadm.dll". ... Указанный модуль не найден. '
Версия certadm.dll ist " 5.2.3790.3959 ".
Я использую "Windows 7 Enterpise SP1".
Можете ли вы сказать мне, как я могу зарегистрироваться и сделать соответствующую ссылку доступной в Visual Studio?
Если я забыл дополнительную информацию, пожалуйста, дайте мне знать, чтобы я мог добавить их.