有人问了一个类似的问题
question 494120
但是我没有得到真正的回答…
我想使用perl/webdav(从win32主机)将文件上载到SharePoint。为了实现这一点,我需要在服务器上使用Kerberos进行身份验证。在搜索了几个小时并尝试了不同的方法之后,我无法打开连接。当前代码是:
my $agent = HTTP::DAV::UserAgent->new(keep_alive=>1);
$agent->agent('Agent');
$agent->timeout(1000);
my $d = HTTP::DAV->new(-useragent => $agent);
$d->credentials( -user=>$user,-pass =>$pass, -url =>$url);
$d->open( -url=>$url ) or die("Couldn't open $url: " .$d->message . "\n");
当执行$d->打开(…)时,我总是得到“无法打开$url:未经授权”。谈判”。所以,显然,基本身份验证不起作用。
有人能给我指一条正确的路吗?我没有固定使用WebDAV,任何其他机制也适合我。只是想让它工作…
编辑1
使用时
LWP
随着
Authen::NTLM
(根据建议
Madhur
)也不起作用。结果是
500 internal server error
在IIS和Apache上。由于相同的错误发生在两个不同的Web服务器上(有两个不同的NTLM实现),我想在
身份:NTLM
模块。
Looking at the implementation
属于
身份:NTLM
在我看来,代码有点逆向工程,既没有基于规范实现,也没有真正的可配置性。为什么会出现这样的问题?
the specification
不是用来实现模块的…
与Perl一起使用NTLM是不是一个非常奇特的用例?
编辑2
基于Madhur的建议,我尝试使用curl访问SharePoint。这是可行的。但是,通过嗅探curl和perl发送的NTLM消息,我发现消息格式有所不同。