Использование службы SOAP, размещенной на IIS в ActivePerl, приводит к ошибке HTTP 401 «Неподдерживаемая схема аутентификации« согласование »». - PullRequest
0 голосов
/ 06 ноября 2018

Мое веб-приложение размещено на IIS, ОС: Windows Server 2012 R2 (x64). В каталоге приложения есть провайдеры ntlm и согласования, настроенные в Windows Authentication

Мой код ActivePerl выглядит следующим образом:

use strict;
use SOAP::Lite 'trace', 'debug';
use Authen::NTLM;
use Data::Dumper;

my $user = '\\username';
my $pass = 'password';
my $host = 'host.example.com:80';

ntlmv2(1);

my @ua_args = (keep_alive => 1);

my $soap = SOAP::Lite
-> uri('http://akhan/MicrosoftDynamicsAXAif60/')
-> proxy('http://akhan/MicrosoftDynamicsAXAif60/T4edEmpInfoSvcHttp/xppservice.svc', keep_alive => 1, credentials => [$host, '', $user, $pass])
-> on_action(sub { join '/', 'http://akhan.tatweer.edu.sa/MicrosoftDynamicsAXAif60', $_[1] })# needed for .NET
-> readable(1)
;

my $method = SOAP::Data->name('getAllNationalities')
->attr({xmlns => 'http://akhan/MicrosoftDynamicsAXAif60/'});

print $soap->call($method)->result;  

sub SOAP::Transport::HTTP::Client::get_basic_credentials { return ('someUser' => 'someUsersPassword') };

Это ответ, который я получил

SOAP::Transport::HTTP::Client::send_receive: POST http://akhan/MicrosoftDynamics
AXAif60/T4edEmpInfoSvcHttp/xppservice.svc HTTP/1.1
Accept: text/xml
Accept: multipart/*
Accept: application/soap
Content-Length: 495
Content-Type: text/xml; charset=utf-8
SOAPAction: http://akhan.tatweer.edu.sa/MicrosoftDynamicsAXAif60/getAllNationali
ties

<?xml version="1.0" encoding="UTF-8"?>
<soap:Envelope
    soap:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
    xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
    xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
    xmlns:xsd="http://www.w3.org/2001/XMLSchema"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <soap:Body>
    <getAllNationalities xmlns="http://akhan/MicrosoftDynamicsAXAif60/" xsi:nil=
"true" />
      </soap:Body>
</soap:Envelope>
SOAP::Transport::HTTP::Client::send_receive: HTTP/1.1 401 Unauthorized
Date: Tue, 06 Nov 2018 09:58:53 GMT
Server: Microsoft-IIS/8.5
WWW-Authenticate: Negotiate
Content-Length: 0
Client-Date: Tue, 06 Nov 2018 09:58:53 GMT
Client-Peer: 172.18.40.53:80
Client-Response-Num: 1
Client-Warning: Unsupported authentication scheme 'negotiate'
X-Powered-By: ASP.NET

401 Unauthorized at C:\Perl64\perl1Maq2.pl line 40.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...