3

私たちのセットアップには、WCF サービスと、私たちが作成した多数のクライアントが含まれています。一部のクライアントには Silverlight アプリケーションが含まれていますが、その他のクライアントには Web および Windows アプリケーションが含まれています。

X.509 証明書に基づいてクライアントを認証したいと (思います)。通常、クライアントに秘密鍵をインストールして、メッセージを暗号化 (デジタル署名) します。サーバーは、クライアントの公開鍵を使用して暗号化を解除し、メッセージが変更されていないことを確認し、メッセージが期待する人からのものであることを証明します (別名、認証済み)。

クライアント マシンに証明書をインストールしたくありません。展開するのは面倒で、クライアントにそうするように頼むことはできません. 私は先日、証明書をクライアント アセンブリに埋め込み、それを読んで使用することを提案した人と話していました。それは可能ですか?

誰かが私に例を挙げてくれれば素晴らしいでしょう。

前もって感謝します、

デビッド

4

2 に答える 2

2

はい、次のようなパスワードで証明書のバイト配列を渡すことで、X509certificate2をロードできます。

var certificate = new X509Certificate2(theByteArrary, "password");

証明書のバイト配列を取得するには、.cer (公開キー) と .pvk (秘密キー) の組み合わせである .pfx ファイルの内容をコピーして貼り付けるだけです。

次に、次のようにして、この証明書をクライアントにロードできます。

var channelFactory = new ChannelFactory<IYourService>();
channelFactory.Credentials.ClientCertificate.Certificate = 
                                         clientCertificate;

自動生成されたクライアント プロキシを使用する場合、または .config ファイルを介して証明書を構成することを好む場合は、codeproject からこれを参照することをお勧めします。

于 2011-01-31T22:26:12.780 に答える
1
于 2010-08-21T06:53:25.770 に答える