2

動機:

  • ローカル マシン上の Windows CA から証明書を取得して表示できるようにしたいと考えています。マシンのブラウザ キーストアにはアクセスしたくありませんが、Windows CA (Windows Certifcate Authority (Service)) にはアクセスしたくありません。

  • これをC#コードでやりたいです。

これまでの私の調査:
次の行を使用しているいくつかの例を見つけました:

ICertView2 certView = new CERTADMINLib.CCertView();
...

この行と ICertView2 構造体を使用できると思います。目標に到達しました。この行を Visual Studio の C# コードに書き込むと、ICertView2 と CERTADMINLib を認識していないと表示されます。したがって、Web を再度検索して、参照をインポートする必要があることがわかった場合。幸いなことに、C:\Windows\System32 フォルダに存在する COM ライブラリ certadmin.dll が必要です。
だから私は Solutionexplorer->Project->References->Add Reference->COM に参照を追加しようとしました。しかし、そこにはリストされていません。「CertCli 1.0 Type Library」と呼ばれる似たようなライブラリだけです。私はこれを追加し、また入力することができました

using CERTCLIENTLib;

残念ながら、必要な " ICertView2 " クラスはそこにありません。入力すると

    using CERTADMINLib;

ICertView2を使用できるようにするために入力する必要がある、Visual Studioは、「 CERTADMINLib 」も知らないと言っています。

さらに、Visual Studioで使用できるようにするには、事前にcertadm.dllを登録する必要があるというヒントをネットで見つけました。dll ファイルを登録しようとしましたが、うまくいきません。

次のコマンドを呼び出すと:

C:\Windows\System32>regsvr32.exe C:\Windows\System32\certadm.dll

次のメッセージを表示するダイアログ ボックスを表示します
。... 指定されたモジュールが見つかりませんでした。'

certadm.dll のバージョンは「5.2.3790.3959」です。「Windows 7 Enterprise SP1」を使用しています。

Visual Studio で適切な参照を登録してさらに利用できるようにする方法を教えてください。

さらに情報を忘れた場合は、お知らせください。追加できます。

4

1 に答える 1

4

Microsoft は XP から Win7 に大きく変わりました。これを参照できるようにするには、certadm.dll を tlbimp する必要があります。Tlbimp.exe は、.NET SDK などに含まれています。次に、このライブラリを .NET ソリューションにインポートする必要があります。警告する必要がありますが、XP で動作するコードを Win7 で動作させることはできませんでした。

このリンクも参照できます: http://blogs.msdn.com/b/alejacma/archive/2012/04/04/how-to-get-info-from-client-certificates-issued-by-a- ca-c-vs-2010.aspx

于 2012-08-21T11:12:57.380 に答える