我有一个服务提供商,他们的Web服务需要非标准的授权类型 .
它们不需要Basic,Digest,NTLM等,而是需要“基本API访问” .
我已经尝试了下面的代码并使用Fiddler来检查Web服务请求 .
似乎没有任何自定义字符串可以使用
Binding avail = new Binding();
avail.Url = "https://amer.webservicesxx.com/Availability";
NetworkCredential netCredential = new NetworkCredential("abc", "def");
Uri uri = new Uri(avail.Url);
CredentialCache cred = new CredentialCache();
cred.Add(uri, "Basic API Access", netCredential);
avail.Credentials = cred;
SearchRsp response = avail.service(request);
POST https://amer.webservicesxx.com/Availability HTTP / 1.1 User-Agent:Mozilla / 4.0(兼容; MSIE 6.0; MS Web服务客户端协议4.0.30319.1)VsDebuggerCausalityData:uIDPo CJPwpspBxKp939c ...内容类型:文本/ XML; charset = utf-8 SOAPAction:“”主持人:america.webservicesxx.com内容长度:658期望:100-continue?xml version =“1.0”encoding =“utf-8”?>?soap:Envelope xmlns:soap = “http://schemas.xmlsoap.org/soap/envelope/”xmlns:xsi =“http://www.w3.org/20 01 / XMLSchema-instance”xmlns:xsd =“http://www.w3 .org / 2001 / XMLSchema“> ......?/ soap:Envelope>
它错过了......
Authorization: Basic API Access/dUFQSS04NDA0NTk2MDk6WiFyYzBuZDg0...
... Headers 中的行 .
如果我只是使用 "Basic"
,它会正确添加授权行,但会被服务提供商拒绝 .
这是为Soap事务添加 Authorization:
标头的正确语法吗?
1 回答
我需要替换Web请求中的数据 .
在Web服务引用类中 .