1

プロキシでClientBaseを使用して、サービスインターフェイスを使用してRESToverWCFサービスを呼び出しています。

public class CommunicationServiceProxy : ClientBase<ICommunicationService>, ICommunicationService

また、各呼び出しの前に承認ヘッダーを追加して、サービスが次のようにリクエストを受け入れるようにします。

private OperationContextScope AddHeader(OperationContextScope scope)

        {
            if (WebOperationContext.Current == null) return null;

            WebOperationContext.Current.OutgoingRequest.Headers.Add("Authorization", Header);

            return scope;
        }

すべてが正常に機能していますが、セキュリティ上の理由から、リクエストURLの署名を生成する必要があります(例http://myservice/contact/getstatus?id=1)。問題は、WebOperationContextのような上記のようなプロキシクラスを使用するときにこのURLを取得する方法です。 Current.OutgoingRequestにこの情報がありません。

誰もがこれを手に入れることができましたか?ここでの私のオプションは何ですか?

ありがとう

4

1 に答える 1

0

私が見つけた解決策は、WCF拡張機能、より具体的にはIClientMessageInspectorを使用することです。ここには、署名を生成するために必要なすべての情報があります。

于 2012-09-05T16:32:21.110 に答える