我正在尝试使用 ruby 来使用 Sharepoint 网络服务。我基本上放弃了尝试使用 NTLM 进行身份验证,并暂时更改了 Sharepoint 服务器以使用基本身份验证。我已经使用soap4r 成功获得了WSDL,但在尝试使用实际的Web 服务调用时仍然无法进行身份验证。
有没有人有过让 ruby 和 Sharepoint 说话的经验?
我正在尝试使用 ruby 来使用 Sharepoint 网络服务。我基本上放弃了尝试使用 NTLM 进行身份验证,并暂时更改了 Sharepoint 服务器以使用基本身份验证。我已经使用soap4r 成功获得了WSDL,但在尝试使用实际的Web 服务调用时仍然无法进行身份验证。
有没有人有过让 ruby 和 Sharepoint 说话的经验?
我是一个完全的新手。但经过大量时间并在更多经验丰富的编码人员的帮助下,我能够让 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')
您如何将 SP 服务器更改为使用基本身份验证?您是通过 IIS 配置站点,还是通过 SP Central Admin 配置站点?
如果您使用的是 SP 2007/MOSS,则需要通过 Central Admin 进行更改;如果是 2003,则需要通过 IIS 进行。
请求失败时会出现什么错误?
不知何故,soap4r 不支持 NTLM,尽管 httpclient 确实支持它。
当启用基本身份验证不是一个选项时,您可以考虑使用 kerberos 即协商身份验证方法。在 sharepoint 中启用此功能有点棘手,但基本上归结为在服务器的命令行上执行以下操作:
cscript adsutil.vbs set w3svc/1/NTAuthenticationProviders "Negotiate,NTLM"
看起来可能有一些奇怪的后果,请查看此论坛帖子以获取更多信息。最后,您需要在soap4r 中使用 auth= 而不是 basic_auth= 我认为设置身份验证。
这可能无济于事,但 micorosoft 只是发布了 Sharepoint 和 WSRP 的工具包,http://blogs.msdn.com/sharepoint/archive/2008/12/15/announcing-the-wsrp-toolkit-for-sharepoint.aspx,因为RoR 支持该标准,它可以提供一种更简单的获取数据的方法。