WebService нестандартный тип авторизации - PullRequest
0 голосов
/ 30 марта 2011

У меня есть поставщик услуг, которому для своего веб-сервиса требуется нестандартный тип авторизации.

Вместо 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?

1 Ответ

0 голосов
/ 31 марта 2011

Мне нужно было заменить данные в веб-запросе.

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

     return request; 
 }

внутри ссылочного класса веб-службы.

...