私はWSDLを使用しており、Webサービスメソッドとも呼ばれています。リクエストには、要求が行われた時点でのみ追加できるAuthorizationヘッダーがあります。サービス参照SOAPリクエストに承認ヘッダーを追加する
public static NumberCaptureClient Connect()
{
var remoteAddress = new EndpointAddress("https://website.com:8443/webservice/WebServiceNumberCapture");
using (var NumberCaptureClient = new NumberCaptureClient(new BasicHttpBinding(BasicHttpSecurityMode.Transport), remoteAddress))
{
NumberCapture.ClientCredentials.UserName.UserName = "test";
NumberCapture.ClientCredentials.UserName.Password = "test";
try
{
using (OperationContextScope scope = new OperationContextScope(NumberCaptureClient.InnerChannel))
{
var httpRequestProperty = new HttpRequestMessageProperty();
httpRequestProperty.Headers[HttpRequestHeader.Authorization] = "Basic " +
Convert.ToBase64String(Encoding.ASCII.GetBytes(NumberCaptureClient.ClientCredentials.UserName.UserName + ":" + NumberCaptureClient.ClientCredentials.UserName.Password));
OperationContext.Current.OutgoingMessageProperties[HttpRequestMessageProperty.Name] = httpRequestProperty;
}
}
catch (Exception error)
{
MessageBox.Show("Error");
return null;
}
return NumberCaptureClient;
}
}
私はプロキシクライアントのインスタンスを返す必要がありますが(クライアントはすべてヘッダーが必要なメソッドを用意しています)、ヘッダーが常に送信されるようにする必要があります。スコープが外部で失われるため、これは不可能です。
ヘッダーを永久に追加して、Webサービスに要求ごとに送信する方法はありますか?
ありがとうございました。完璧に今働いている。 –