2008-12-16 106 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中設置身份驗證。