動機使用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的最佳做法? –