动机使用ICertView2:
HOWTO为了成功注册certadm.dll能在C#代码
我希望能够在本地机器从Windows CA检索和查看证书。我不想访问本机的浏览器密钥库,而是访问Windows CA(Windows Certifcate Authority(服务))。
我想在C#代码中做到这一点。
我的调查,到目前为止:
我发现,使用的是以下行几个例子:
ICertView2 certView = new CERTADMINLib.CCertView();
...
我想我能够使用这条线和ICertView2结构,我达到了我的目标。 如果在Visual Studio中将此行写入我的C#代码中,它对我说,它不知道ICertView2和CERTADMINLib。 因此,如果再次搜索Web,发现我需要导入参考。我需要COM库certadmin.dll,幸运的是存在于我的C:\ Windows \ System32文件夹中。
所以我试着在Solutionexplorer-> Project-> References-> Add Reference-> COM上添加Reference。但它没有在那里列出,只有一个看起来类似的库称为“CertCli 1.0类型库”。我加了这一点,也能够键入
using CERTCLIENTLib;
但unfortuneatly,所需要的“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中提供适当的参考?
如果我忘记了更多信息,请让我知道,所以我可以添加它们。
你有没有想出解决办法? – Tony
那么什么是新的等效于ICertView2,什么是在MS#上使用MS CA的最佳做法? –