2012-12-10 11 views
8

私は、要求/応答が署名されただけであるはずのWCF Webサービスを作成しています。このため は、のServiceContract属性に私は大丈夫作品なぜWCF SoapFault応答は暗号化されるのですか?

ProtectionLevel = ProtectionLevel.Sign 

を設定しています。

要件のために、一部のSoapFaultがサービスからスローされるはずです。 SoapFaultsの二つのタイプ:このためにWS-Addressingのに関連するアプリケーション

  • に関連

    • (例えばメッセージIDが欠落している)

    私はSoafFaultsに対処するためのアプローチのノーマルを使用しています:作成メッセージインスタンスがMessageFault.CreateFaultで作成されるIErrorHandler。

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

  • +0

    暗号化されていることをどのように知っていますか?サンプルレスポンスを提供できますか? – esskar

    +0

    SvcTraceViewer(クライアント側)で表示するので、暗号化されていることがわかりました。 – csg

    +0

    @csgあなたはなぜそれを見つけましたか?私はまったく同じ問題を抱えています。 –

    答えて

    0

    http://msdn.microsoft.com/en-us/library/aa347791.aspxhttp://msdn.microsoft.com/en-us/library/system.servicemodel.faultcontractattribute.aspxを確認してください。 それはあなたが選択した場合、結合は、セキュリティを有効にし、あなたはどこにでも契約上の ProtectionLevelプロパティを設定していない、すべてのアプリケーション データを暗号化して署名されます

    と述べています。

    デフォルトでは、ビルドタイプはこの動作を使用していると思います。実際にスローされた例外を調べることでこれを確認できます。

    +0

    保護レベルは契約レベルで次のように設定されています。[ServiceContract(ProtectionLevel = ProtectionLevel.Sign)] – csg

    関連する問題