0

この単純な方法を使用して、ユーザー名とパスワードを SOAP 要求ヘッダーに添付します。これは Java 境界内では正常に機能しますが、WCF クライアントで呼び出すことができるようにしたいと考えています。どうすればいいですか?

次のコードを試しましたが、ヘッダーに資格情報が含まれていません。

wsClient.ClientCredentials.UserName.UserName = "Hello";
wsClient.ClientCredentials.UserName.Password = "World";

前もって感謝します!

4

1 に答える 1

0

それは非常にひどい非標準化された方法です。カスタム HTTP ヘッダーを使用するため、組み込みの WCF メカニズムがそのようなアプローチを魔法のようにサポートするとは期待できません。カスタムの非標準 HTTP ヘッダー (SOAP ヘッダーではなく) を HTTP 要求に追加する必要があることを、WCF はどのように認識する必要がありますか?

これを使って:

var proxy = new YourServiceClient();
using (var scope = new OperationContextScope(proxy.InnerChannel))
{
    var prop = new HttpRequestMessageProperty();
    prop.Headers.Add("UserName", "Hello");
    prop.Headers.Add("Password", "World");

    OperationContext context = OperationContext.Current;
    context.OutgoingMessageProperties[HttpRequestMessageProperty.Name] = prop;

    proxy.CallYourOperation();
}
于 2011-10-04T07:55:42.477 に答える