У меня есть поставщик услуг, которому для своего веб-сервиса требуется нестандартный тип авторизации.
Вместо Basic, Digest, NTLM и т. Д. Им требуется «Базовый доступ к API».
Я попробовал приведенный ниже код и использовал Fiddler для проверки запроса веб-службы.
Не похоже, что можно использовать какие-либо пользовательские строки
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
Пользователь-агент: Mozilla / 4.0 (совместимый; MSIE 6.0; Клиент MS Web Services
Протокол 4.0.30319.1)
VsDebuggerCausalityData:
uIDPo + CJPwpspBxKp939c ...
Тип содержимого: text / xml; кодировка = UTF-8
SOAPAction: ""
Хост: america.webservicesxx.com
Длина содержимого:
658
Ожидание: 100-продолжение
? Xml version = "1.0" encoding = "utf-8"?>? Soap: Конверт
XMLNS: мыло = "http://schemas.xmlsoap.org/soap/envelope/"
xmlns: xsi = "http://www.w3.org/20 01 / XMLSchema-instance"
xmlns: xsd = "http://www.w3.org/2001/XMLSchema"> ...
? / Мыло: Envelope>
Не хватает ...
Авторизация: базовый доступ к API / dUFQSS04NDA0NTk2MDk6WiFyYzBuZDg0 ...
... строка в шапке.
Если я просто использую "Basic"
, это правильно добавляет строку Авторизации, но отклоняется поставщиком услуг.
Это правильный синтаксис для добавления заголовка Authorization:
в транзакцию Soap?