2

皆さん、私はXMLドキュメントの下部にXMLDSIGXML署名を提供することで保護されるRESTfulサービスを構築しています。このドキュメントをサーバーに送信すると、WCFサービスはHTTPペイロードでXML逆シリアル化メソッドを実行して、C#クラスを提供します。残念ながら、この逆シリアル化が適切に行われるためには、セキュリティのためだけに必要ですが、C#クラス定義にはXML署名の定義に必要なすべてのプロパティが必要です。

だから、私がしたいのはこれです:

  • WCFサービスの動作を構築します。この動作は、呼び出し前にXML署名を調べ、検証してから、通常のメソッド呼び出しの逆シリアル化の前にXMLから削除します。

これは可能ですか?もしそうなら、どこでこれを行う方法を探し始めることができますか?ちょうどいいWCF注入ポイントが見つからなかったので、近くにいるような気がします。

psすべてが.NET4.0、Visual Studio 2010、IIS7以降です。

4

1 に答える 1

0

理解した。XmlSignatureVerificationConfigurationSectionクラスを作成しました。これにより、呼び出されたXML要素をWCF動作構成に直接ドロップできます。次に、この構成セクションは、WCFが動作拡張のデータ型であるSignatureVerificationBehaviorを指すようにします。この動作は、私が作成したカスタムメッセージインスペクターSignatureVerificationInspectorを指します。このインスペクターは、メッセージをポップして開き、ペイロードから署名ノードを削除し、署名を検証してから、新しい(署名が削除された)メッセージをパイプラインに送り返します。パイプラインでは、サービス定義は署名の存在を幸いにも知らないままです。

于 2010-10-21T15:50:37.827 に答える