2

我正在尝试使用需要身份验证的 PHP5 标准 SOAP 库向 Sharepoint 列表(通过'http://url.co.uk/_vti_bin/Lists.asmx?WSDL)发出 SOAP 请求。我使用 NTLM 身份验证使其工作正常(这很痛苦,但最终奏效了),但现在项目的职责是通过 CLAIMS 进行身份验证,以便它适用于 Sharepoint 安装或 office365 实例。

我从一开始就意识到标准的 SOAP 身份验证不起作用……但我还是尝试了!不出所料,我收到了一条错误回复“列出错误代码:HTTPList 错误字符串:禁止”。

是否可以通过基于纯 PHP/SOAP 的解决方案通过 CLAIMS 进行身份验证,如果可以,实现此目的的最佳方法是什么?我已经阅读了有关使用 Apache 技巧等进行身份验证的不同解决方案的关于共享点的声明身份验证的不同文章。我正在从事的项目要求这是一个纯 PHP 解决方案。

值得指出的是,我不是 MS 开发人员,并且对 CLAIMS 身份验证的了解有限(这可能无济于事!)

4

3 回答 3

1

这里有一些更多信息(特定于 PHP 的)可能也有帮助。我自己还没有尝试过,所以不能说它是否真的有效:

http://macfoo.wordpress.com/2012/06/23/how-to-log-into-office365-or-sharepoint-online-using-php/

http://allthatjs.com/2012/03/28/remote-authentication-in-sharepoint-online/

http://davidsit.wordpress.com/2010/02/23/reading-a-sharepoint-list-with-php/

于 2013-05-10T09:32:00.780 回答
1

phpSPO - PHP库的 SharePoint 客户端允许您使用 SharePoint Online 的基于 REST/OData 的 API 对 SharePoint 列表数据执行 CRUD 操作。

当前版本支持使用基于声明的身份验证的 SharePoint Online。

例子

如何在 SharePoint Online (SPO) 中执行身份验证:

try {
    $client = new SPOClient($url);
    $client->signIn($username,$password);
    echo 'You have been authenticated successfully\n';
}
catch (Exception $e) {
    echo 'Authentication failed: ',  $e->getMessage(), "\n";
}
于 2014-05-23T18:26:27.270 回答
0

我还没有看到任何关于 PHP 的示例——这些示例解释了该过程并在 C# 中给出了一个应该可以用 PHP 重写的实现。

http://www.wictorwilen.se/Post/How-to-do-active-authentication-to-Office-365-and-SharePoint-Online.aspx

http://code.msdn.microsoft.com/Remote-Authentication-in-b7b6f43c

http://blogs.msdn.com/b/cjohnson/archive/2011/05/14/part-2-headless-authentication-with-sharepoint-online-and-the-client-side-object-model.aspx

于 2012-08-20T13:42:32.957 回答