Ruby/Rails和Sharepoint Web Services

6

我正在尝试使用 Ruby 消费 Sharepoint 的 Web 服务。我基本上放弃了尝试使用 NTLM 进行身份验证,并临时更改了 Sharepoint 服务器以使用基本身份验证。使用 soap4r 成功获取了 WSDL,但仍无法在尝试使用实际的 Web 服务调用时进行身份验证。

有没有人有使用 Ruby 和 Sharepoint 进行交互的经验?


2
请不要在标题中写“已解决”,而是将一个答案标记为已接受并投票支持它(就像您所做的那样)。这是这里的正式方式,用于标记问题已解决。谢谢。 - user unknown
4个回答

4

我是一个完全的新手。但经过很长时间,并得到了更有经验的编码人员的帮助,我能够让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')

1
你是如何更改 SP 服务器使用基本身份验证的?是通过 IIS 配置站点,还是通过 SP Central Admin 进行配置?
如果您正在使用 SP 2007/MOSS,则需要通过 Central Admin 进行更改;如果是 2003,则需要通过 IIS 进行更改。
请求失败时你遇到了什么错误?

1

一些原因,soap4r不支持NTLM,但httpclient支持。

当无法启用基本身份验证时,您可以考虑使用Kerberos即协商认证方法。在SharePoint中启用此功能有点棘手,但基本上可以通过在服务器的命令行上执行以下操作来完成:

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

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


0

真的吗?我找不到任何证据表明Rails支持WSRP。 - Kevin Colyar

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接