セキュリティで保護された METRO 2.1 Web サービスがあり、それを使用できる .NET (3.5) クライアントを開発したいと考えています。WS が保護されていない場合は既に成功していますが、取得したら
セキュリティ メカニズムはUsername Authentication with Symmetric Key
、Development Defaults
.NET でセキュリティを設定するにはどうすればよいですか? METRO ガイドを読んでいますが、サンプルへのリンクが壊れているだけで、ガイドを読み進めることができませんでした。でプロキシ クラスの生成に成功しましたがsvcutil
、その使用方法がわかりません。
svcutil 警告:
警告 1 カスタム ツールの警告: エンドポイントのセキュリティ ポリシーがインポートされました。セキュリティ ポリシーには、Windows Communication Foundation 構成では表現できない要件が含まれています。生成された構成ファイルで必要な SecurityBindingElement パラメーターに関するコメントを探します。コードを使用して正しいバインド要素を作成します。構成ファイルにあるバインド構成は安全ではありません。
警告 2 カスタム ツールの警告: wsam:Addressing 要素には wsp:Policy 子要素が必要ですが、子要素がありません。
編集
私はこれを解決することに本当に近づいています(私は思う)。デフォルトの GlassFish 証明書をkeytool.exe
次のようにエクスポートしました。
keytool -exportcert -alias xws-security-server -storepass changeit -keystore keystore.jks -file server.cer
keytool -printcert -file server.cer //This line shows it's content
server.cer
クライアント側で証明書を使用します:
KDTreeWSClient wsClient = new KDTreeWSClient();
X509Certificate2 server_cert = new X509Certificate2("FullPathToCertificate/server.cer", "changeit");
wsClient.ClientCredentials.ServiceCertificate.DefaultCertificate = server_cert;
wsClient.ClientCredentials.UserName.UserName = "wsitUser"; //Default GF username
wsClient.ClientCredentials.UserName.Password = "changeit"; //Default GF password
質問MessageSecurityException
エンドポイントの予想される DNS ID は ですが、エンドポイントには があるため、この結果は にlocalhost
なりますxwssecurityserver
。localhost
/xwssecurityserver
手動で設定できますか?
どんな助けでも大歓迎です!前もって感謝します、ダニエル