HTTP Authorization Negotiate

victoriaff

Новичок
Помогите, плиз, решить проблему, а то уже сил нет.

Есть SOAP сервер, и известно что он требует Negotiate авторизацию. Но я никак не могу зайти с PHP, с WebServerStudio я захожу без проблем.

Я использую следующий скрипт.

PHP:
$header[] = "POST /Services.asmx HTTP/1.1";
$header[] = "Content-Type: text/xml; charset=utf-8";
$header[] = "SOAPAction: \"http://CTL.COM.Services.Prime.Issuer.WebServices/PrimeIssuerServices/StatementsList\"";
$header[] = "Host: 192.168.2.102";
$header[] = "Authorization: Negotiate TlRMTVNTUAABAAAAt4II4gAAAAAAAAAAAAAAAAAAAAAFASgKAAAADw==";
$header[] = "Expect: 100-continue";
$header[] = "Connection: Keep-Alive";

$ch = curl_init ("http://192.168.2.102/Prime.Issuer.WebServices/PrimeIssuerServices.asmx");

curl_setopt ($ch, CURLOPT_POST, 1);
curl_setopt ($ch, CURLOPT_HTTPHEADER, $header);
curl_setopt ($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_FAILONERROR, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt ($ch, CURLINFO_HEADER_OUT, 1);

$result = curl_exec ($ch);
curl_close ($ch);
fclose ($fp);

Я включил лог...

1) Из браузера получаю ответ: HTTP/1.1 401 Unauthorized. Файл ie.txt во вложении.

2) WebServerStudio также получает аналогичный ответ, но затем WebServerStudio посылает вновь POST запрос и успешно авторизуется. Файл webstudio.txt во вложении.

Как средствами PHP реализовать такое подключение, или скажите что я делаю не так.

Заранее спасибо.
 

Вложения

AmdY

Пью пиво
Команда форума
victoriaff
давай начнём с того, что есть SOAP http://www.php.net/manual/ru/class.soapclient.php
какого чёрта разработчики после тебя должны разбираться в твоих заголовках, если есть готовая реализация
 

victoriaff

Новичок
Проблема возникла когда нам установили новую версию Soap сервера.
В то и дело, что со старым сервером SOAP я использовал SoapClient, и все работало. В новой версии используется Negotiate авторизация, и этот класс уже не работает.
 
Сверху