X.509証明書を使用して保護されているWebサービスを呼び出そうとしています。Webサービスのプロバイダーから、ユーザー名とパスワードが提供されました。Firefoxを使用してサイトを閲覧すると、ブラウザからユーザー名とパスワードの入力を求められます。ユーザー名/パスワードを入力すると、(WSDLではなく)XMLドキュメントが表示されます。次に、(アドレスバーの左側にある)証明書をクリックすると、サービスプロバイダーが自分の証明書を検証したことがわかります。
(電子メールの添付ファイルとして)WSDLが提供されており、標準の右クリック追加サービス参照を使用してプロキシクラスを作成しました。
Webサービスを呼び出そうとすると、次のエラーが発生します。権限を持つSSL/TLSセキュリティで保護されたチャネルの信頼関係を確立できませんでした。
Webサイトから証明書を保存して(アドレスバーの左側にある[証明書名]->[証明書の表示]->[エクスポート]をクリック)、mmc証明書スナップインを使用してマシンにインストールしてみました(ここで正しい方向??)
しかし、これも機能しませんでした
これが私のコードです:
var factory = new ChannelFactory<ServicePort>("ServiceSoapBinding");
factory.Credentials.UserName.UserName = "myuser";
factory.Credentials.UserName.Password = "mypass";
var client = factory.CreateChannel();
var request = GetRequest();
var response = client.GetDetails(request);
私は証明書について非常に基本的な知識を持っているので、これを念頭に置いてください。
- クライアントマシン(今のところMy Dev PC)にクライアント証明書をインストールする必要がありますか?
- サービスプロバイダーから特定の証明書が提供された場合、上記のように彼のWebサイトから取得できますか、それとも別途送信する必要がありますか。
これに関する助けをいただければ幸いです。
ケビンTに感謝します