首页 文章

WebService非标准授权类型

提问于
浏览
0

我有一个服务提供商,他们的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 回答

  • 0

    我需要替换Web请求中的数据 .

    protected override System.Net.WebRequest GetWebRequest(Uri uri)
    {
         WebRequest request = base.GetWebRequest(uri);
         request.Headers.Add("Authorization: Basic API Access dUFQSS04NDA0NT...");
    
         return request; 
     }
    

    在Web服务引用类中 .

相关问题