8

要求/応答のみが署名されることになっているWCFWebサービスを作成しています。このために、ServiceContract属性に設定しました

ProtectionLevel = ProtectionLevel.Sign

それは大丈夫です。

要件により、一部のSoapFaultはサービスからスローされることになっています。2種類のSoapFaults:

  • アプリケーションに関連する
  • WS-Addressingに関連します(例:MessageIDがありません)

このために、私はSoafFaultsを処理する通常のアプローチを使用しています。MessageFault.CreateFaultを使用してMessageインスタンスが作成されるIErrorHandlerを作成します。

返されたほとんどすべてのSoapFaultは暗号化されていません(これは私にとっては問題ありません)。私の質問は、action ="http://www.w3.org/2005/08/addressing/fault"または" http:// www.w3.org/2005/08/addressing/soap/fault "は暗号化されていますか?

4

1 に答える 1

0

http://msdn.microsoft.com/en-us/library/aa347791.aspxおよびhttp://msdn.microsoft.com/en-us/library/system.servicemodel.faultcontractattribute.aspxを確認してください。それは次のように述べています

セキュリティを有効にするバインディングを選択し、コントラクトのどこにも ProtectionLevel プロパティを設定しない場合、すべてのアプリケーション データは暗号化され、署名されます。

組み込み型はデフォルトでこの動作を使用していると思います。これは、実際にスローされた例外を確認することで確認できます。

于 2013-01-29T14:37:14.487 に答える