我正在尝试使用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宝石。
我已经能够使用列表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 )
你是如何将SP服务器更改为使用基本身份验证的?你是通过IIS配置网站,还是通过SP Central Admin完成的?
如果您正在使用SP 2007/MOSS,您需要通过Central Admin进行更改;如果是2003版本,您需要通过IIS进行更改。
请求失败时,您会收到什么错误信息?
NTLM 在某种程度上不受 soap4r 支持,尽管 httpclient 支持它。
当不能启用基本身份验证时,您可以考虑使用Kerberos,即协商身份验证方法。在SharePoint中启用此方法有点棘手,但基本上归结为在服务器的命令行上执行以下操作:
cscript adsutil.vbs set w3svc/1/NTAuthenticationProviders "Negotiate,NTLM"
It might have some wird concequences it seems, check this forum post for more info. Finally you need to set the authentication in soap4r with auth= instead of basic_auth= i think.
这可能没有用,但是微软刚刚发布了SharePoint和WSRP工具包, http://blogs.msdn.com/sharepoint/archive/2008/12/15/announcing-the-wsrp-toolkit-for-sharepoint.aspx,因为RoR支持这个标准,它可能提供了更简便的方法来获取数据。