我正在尝试使用 Ruby 消费 Sharepoint 的 Web 服务。我基本上放弃了尝试使用 NTLM 进行身份验证,并临时更改了 Sharepoint 服务器以使用基本身份验证。使用 soap4r 成功获取了 WSDL,但仍无法在尝试使用实际的 Web 服务调用时进行身份验证。
有没有人有使用 Ruby 和 Sharepoint 进行交互的经验?
我正在尝试使用 Ruby 消费 Sharepoint 的 Web 服务。我基本上放弃了尝试使用 NTLM 进行身份验证,并临时更改了 Sharepoint 服务器以使用基本身份验证。使用 soap4r 成功获取了 WSDL,但仍无法在尝试使用实际的 Web 服务调用时进行身份验证。
有没有人有使用 Ruby 和 Sharepoint 进行交互的经验?
我是一个完全的新手。但经过很长时间,并得到了更有经验的编码人员的帮助,我能够让ruby与Sharepoint 2010一起工作。下面的代码需要'ntlm / mechanize'gem。
我已经能够使用列表GUID和列表视图GUID从指定的列表(以下)中下载sharepoint 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')
一些原因,soap4r不支持NTLM,但httpclient支持。
当无法启用基本身份验证时,您可以考虑使用Kerberos即协商认证方法。在SharePoint中启用此功能有点棘手,但基本上可以通过在服务器的命令行上执行以下操作来完成:
cscript adsutil.vbs set w3svc/1/NTAuthenticationProviders "Negotiate,NTLM"
似乎可能有一些奇怪的后果,请查看此论坛帖子获取更多信息。 最后,我认为您需要使用auth =而不是basic_auth =在soap4r中设置身份验证。
这可能不是很有帮助,但微软刚刚发布了Sharepoint和WSRP的工具包http://blogs.msdn.com/sharepoint/archive/2008/12/15/announcing-the-wsrp-toolkit-for-sharepoint.aspx。由于RoR支持该标准,因此它可能提供了一种更简单的获取数据的方法。