动机:
我希望能够从本地计算机上的Windows CA检索和查看证书。我不想访问本机的Browser-Keystores,而是访问Windows CA(Windows Certifcate Authority(服务))。
我想在C#-Code中执行此操作。
到目前为止我的调查:
我发现了几个使用以下行的示例:
ICertView2 certView = new CERTADMINLib.CCertView();
...
我想我能够使用这一行和ICertView2结构,我达到了我的目标。 如果在Visual Studio中将此行写入我的C#-Code,它告诉我,它不知道ICertView2和CERTADMINLib。 因此,如果再次搜索Web并发现我需要导入一个Reference。我需要COM库certadmin.dll,幸运的是存在于我的C:\ Windows \ System32文件夹中 所以我尝试在Solutionexplorer-> Project-> References-> Add Reference-> COM上添加Reference。但它没有在那里列出,只有一个类似的库名为“ CertCli 1.0 Type Library ”。我添加了这个并且还能够输入
using CERTCLIENTLib;
但不幸的是,所需的“ ICertView2 ”类不存在。 如果我输入
using CERTADMINLib;
应该输入以便能够使用ICertView2,Visual Studio对我说,它也不知道“ CERTADMINLib ”。
此外,我在网上发现提示,需要事先注册certadm.dll,以便在Visual Studio中使用它。我尝试注册dll-File,但它不起作用。
如果我调用以下命令:
C:\Windows\System32>regsvr32.exe C:\Windows\System32\certadm.dll
并获得一个Dialogbox告诉我以下内容:
'加载模块时出错“C:\ Windows \ System32 \ certadm.dll”。 ...找不到指定的模块。'
certadm.dll版本ist“ 5.2.3790.3959 ”。 我正在使用“Windows 7 Enterpise SP1”。
你能告诉我,我如何注册并在Visual Studio中提供适当的参考资料?
如果我忘记了更多信息,请告诉我,我可以添加它们。
答案 0 :(得分:4)
微软从XP改为Win7。为了能够引用它,您将不得不使用tlbimp certadm.dll。 Tlbimp.exe可以在您的.NET SDK等中找到。然后,您必须在.NET解决方案中导入此库。 虽然我必须警告你,但我没有想要在Win7中使用适用于XP的任何代码。