6

我正在尝试使用 ruby​​ 来使用 Sharepoint 网络服务。我基本上放弃了尝试使用 NTLM 进行身份验证,并暂时更改了 Sharepoint 服务器以使用基本身份验证。我已经使用soap4r 成功获得了WSDL,但在尝试使用实际的Web 服务调用时仍然无法进行身份验证。

有没有人有过让 ruby​​ 和 Sharepoint 说话的经验?

4

4 回答 4

4

我是一个完全的新手。但经过大量时间并在更多经验丰富的编码人员的帮助下,我能够让 ruby​​ 与 Sharepoint 2010 一起工作。下面的代码需要“ntlm/mechanize”gem。

我已经能够使用列表 GUID 和列表视图 GUID 从指定的列表(下面)下载共享点 xml。

编辑(2011 年 5 月 23 日)。我应该指出,这段代码需要 ruby​​-ntlm gem。这是一个不错的链接,应该会有所帮助。这绝对有效。

http://rubydoc.info/gems/ruby-ntlm/0.0.1/file/README.markdown

agent = Mechanize.new
agent.auth('domain\\USERNAME', 'PASSWORD')
page = agent.get('http://URL/DIRECTORY/SITE/LIST/_vti_bin/owssvr.dll?Cmd=Display&List={LIST_GUID}&View={VIEW_GUID}&XMLDATA=TRUE')
于 2011-03-17T19:44:38.817 回答
1

您如何将 SP 服务器更改为使用基本身份验证?您是通过 IIS 配置站点,还是通过 SP Central Admin 配置站点?

如果您使用的是 SP 2007/MOSS,则需要通过 Central Admin 进行更改;如果是 2003,则需要通过 IIS 进行。

请求失败时会出现什么错误?

于 2008-12-16T20:01:47.280 回答
1

不知何故,soap4r 不支持 NTLM,尽管 httpclient 确实支持它。

当启用基本身份验证不是一个选项时,您可以考虑使用 kerberos 即协商身份验证方法。在 sharepoint 中启用此功能有点棘手,但基本上归结为在服务器的命令行上执行以下操作:

cscript adsutil.vbs set w3svc/1/NTAuthenticationProviders "Negotiate,NTLM"

看起来可能有一些奇怪的后果,请查看此论坛帖子以获取更多信息。最后,您需要在soap4r 中使用 auth= 而不是 basic_auth= 我认为设置身份验证。

于 2009-06-23T14:35:59.337 回答
0

这可能无济于事,但 micorosoft 只是发布了 Sharepoint 和 WSRP 的工具包,http://blogs.msdn.com/sharepoint/archive/2008/12/15/announcing-the-wsrp-toolkit-for-sharepoint.aspx,因为RoR 支持该标准,它可以提供一种更简单的获取数据的方法。

于 2008-12-17T15:15:21.617 回答