2009-06-18 3 views
4

Этот код Perl работает с анонимным доступом к веб-службе ASP.NET, но когда включена интегрированная защита, служба возвращает 401 ошибок. Я думаю, мне нужно использовать модуль NTLM совместно с SOAP :: Lite, но неясно, как это сделать. Как можно интегрировать эти компоненты?Как интегрировать аутентификацию NTLM с помощью модуля SOAP :: Lite от Perl?

use SOAP::Lite; 
use strict; 

my $proxy = "http://localhost:28606/WebService.asmx"; 

my $method_name = "HelloWorld"; 
my $uri = "http://tempuri.org/"; 
my $methodAction = $uri . $method_name; 

my $soap = SOAP::Lite 
    ->uri($uri) 
    ->proxy($proxy) 
    ->on_action(sub{ $methodAction; }); 

my $method = SOAP::Data->name($method_name)->attr({xmlns=>$uri}); 
my $result = $soap->call($method); 

print $result->result(); 
+0

Что такое «интегрированная безопасность»? – innaM

ответ

2

Вы можете получить SOAP :: Lite для печати некоторую отладочную, если вы:

use SOAP::Lite +trace; 

вместо

use SOAP::Lite; 

EDIT:

ОК, я думаю, Получи это сейчас. Включение интегрированной функции безопасности заставляет IIS требовать аутентификации NTLM. Там есть thread over at perlmonks.org, который, кажется, раскрывает ответ.

1

Я немного опоздал, но я столкнулся с той же проблемой. Попробуйте следующее:

use LWP::UserAgent; 
use LWP::Debug; 
use SOAP::Lite on_action => sub { "$_[0]$_[1]"; }; 
import SOAP::Data 'name', 'value'; 
our $sp_endpoint = 'http://sp.example.com/sites/mysite/_vti_bin/lists.asmx'; 
our $sp_domain = 'sp.example.com:80'; 
our $sp_username = 'DOMAIN\username'; 
our $sp_password = 'xyz'; 

if ($debug) { 
    LWP::Debug::level('+'); 
    SOAP::Lite->import(+trace => 'all'); 
} 

my @ua_args = (keep_alive => 1); 
my @credentials = ($sp_domain, "", $sp_usernam, $sp_password); 
my $schema_ua = LWP::UserAgent->new(@ua_args); 
$schema_ua->credentials(@credentials); 
$soap = SOAP::Lite->proxy($sp_endpoint, @ua_args, credentials => \@credentials); 
$soap->schema->useragent($schema_ua); 
$soap->uri("http://schemas.microsoft.com/sharepoint/soap/"); 

 Смежные вопросы

  • Нет связанных вопросов^_^