【问题标题】:Accessing a sharepoint using perl and webdav使用 perl 和 webdav 访问共享点
【发布时间】:2010-11-25 13:03:21
【问题描述】:

question 494120 中提出了类似的问题,但恕我直言并没有真正回答...

我想使用 perl/WebDAV(从 Win32 主机)将文件上传到共享点。为了实现这一点,我需要在服务器上使用 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->open(...) 时,我总是得到“无法打开 $url:未经授权。协商”。因此,显然基本身份验证不起作用。

谁能给我指出正确的道路,好吗?我不习惯使用 WebDAV,任何其他机制也适合我。只是想让它工作......


编辑 1
当使用LWPAuthen::NTLM(如Madhur 所建议的那样)也不起作用。它会在 IIS 和 Apache 上生成 500 internal server error。由于相同的错误发生在两个不同的 Web 服务器(具有两个不同的 NTLM 实现)上,我猜Authen::NTLM 模块中肯定有问题。

Looking at the implementation of Authen::NTLM 在我看来,代码有点逆向工程,既不是基于规范实现的,也不是真正可配置的。为什么不使用the specification 来实现模块的问题是什么...

将 NTLM 与 Perl 一起使用是一种奇特的用例吗?


编辑 2
根据 Madhur 的建议,我尝试使用 Curl 访问 Sharepoint。这行得通。但是嗅探 Curl 的 NTLM 消息和 Perl 发送的消息,我发现消息格式有些不同。

【问题讨论】:

    标签: perl sharepoint webdav kerberos ntlm


    【解决方案1】:

    而不是使用 WebDAV。我建议您使用开箱即用的网络服务。

    这里概述了如何在 PERL 中使用 sharepoint Web 服务:

    http://www.squish.net/log/2008/10/11/perl-sharepoint/

    http://shareperl.blogspot.com/

    这是使用 Web 服务上传文件的 .NET 代码: http://www.oriolardevol.com/Article/Details/3

    自从我使用 PERL 以来,将其转换为 PERL 代码就交给您了 :)

    【讨论】:

    • 感谢您的回答。不幸的是,在 IIS 和 Apache 上使用 LWPAuthen::NTLM 会导致 500 internal server error。我认为Authen::NTLM-implementation 中存在错误...
    • 我有几个建议,可能有用: 1. 尝试使用调试选项 use LWP::Debug qw(+); 2.你能用Curl来处理认证en.wikipedia.org/wiki/CURL 3.签出stackoverflow.com/questions/1013721/… 4.perlmonks.org/?node_id=719995
    • @eckes:好的。首先,我不知道这个@user 是如何工作的。在常见问题解答中也找不到。坦率地说,我不知道 CURL 或 PERL。我是共享点的家伙。如果 CURL 适合您,请继续使用它。如果您对 sharepoint 或其相关用法有任何疑问,请联系我。
    • @Madhur:我想使用 Perl 的原因是我有一个用 Perl 编写的用于某些软件的构建脚本。构建成功后,我想将新生成的版本上传到我的 Sharepoint,签入,并调整指向最新版本的链接。此工作流程恕我直言,无法使用 Curl...
    • @eckes:我们将从 powershell 调用 sharepoint web 服务,而不是 sharepoint 对象模型。见:sharepoint.microsoft.com/Blogs/zach/Lists/Posts/Post.aspx?ID=9
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-07
    • 1970-01-01
    • 1970-01-01
    • 2010-11-29
    相关资源
    最近更新 更多