0
基本認証を必要とするWebサービスがあります。小さなJavaプログラムでテストします。基本C#を使用したWebサービスへの認証
、実質的に:
...
String authorization = s + ':' + (s1 != null ? s1 : "");
authorization = Base64.getEncoder().encodeToString(authorization2.getBytes());
httpurlconnection.setRequestProperty("Authorization", "Basic " + authorization);
....
これが正常に動作します。しかし、私はこれをC#プログラムで扱わなければなりません。 wsdlファイルをインポートしてプロジェクトに「サービスリファレンス」を追加します。
WSHttpBinding binding = new WSHttpBinding();
binding.Name = "pisconfigwebserviceSOAP";
EndpointAddress epAdd = new EndpointAddress(remoteAddress);
myWebserviceClient client = new myWebserviceClient(binding, epAdd);
ContractDescription cd = ContractDescription.GetContract(typeof(myWebservice), typeof(myWebserviceClient));
client.Endpoint.Contract = cd;
// this part should add the Basic Authentication to the header. Or not?
using (OperationContextScope scope = new OperationContextScope(client.InnerChannel)) {
var httpRequestProperty = new HttpRequestMessageProperty();
httpRequestProperty.Headers.Add(HttpRequestHeader.Authorization, "Basic " + Convert.ToBase64String(Encoding.ASCII.GetBytes(mUserName + ":" + mPassword)));
OperationContext.Current.OutgoingMessageProperties.Add(HttpRequestMessageProperty.Name, httpRequestProperty);
int result = client.AddOrUpdate(obj);
}
私は私が間違っているのかわからない、多くの多くの異なるものを試してみて、私はここにこだわっています: は、検索の多くの後、私はこれが取引になると思います。 私は助けていただければ幸いです。おかげで