2008-12-16 105 views
6

我试图用Ruby来使用Sharepoint webservices。我已经基本放弃尝试使用NTLM进行身份验证,并暂时将Sharepoint服务器更改为使用基本身份验证。我已经成功使用soap4r获得WSDL,但在尝试使用实际的Web服务调用时仍无法进行身份验证。Ruby/Rails和Sharepoint Web服务

有没有人有任何经验让红宝石和Sharepoint谈?

+1

请不要放在标题中“解决”,而是标志着一个答案,接受并投上一票(像你一样)。这是标准问题解决的正式方式。谢谢。 – 2012-03-15 19:52:19

回答

4

我是一个新手。但是经过很多时间和更多经验编码人员的帮助后,我能够使用Sharepoint 2010进行ruby工作。下面的代码需要'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" 

它可能有似乎check this forum post for more info一些wird concequences。 最后,您需要在auth =而不是basic_auth =我认为在soap4r中设置身份验证。