2008-12-16 8 views
6

Ich versuche Sharepoint Webservices mit Ruby zu konsumieren. Ich habe es im Grunde genommen aufgegeben, mich mit NTLM zu authentifizieren und habe den Sharepoint-Server vorübergehend auf Basis-Authentifizierung umgestellt. Es ist mir gelungen, eine WSDL mit soap4r zu erhalten, aber ich kann mich immer noch nicht authentifizieren, wenn ich versuche, einen tatsächlichen Web-Service-Aufruf zu verwenden.Ruby/Rails und Sharepoint Web Services

Hat jemand Erfahrung damit, Ruby und Sharepoint zu sprechen?

+1

Bitte nicht „gelöst“ in der Überschrift setzen, aber eine Antwort markieren als angenommen und es vote up (wie du). Das ist der formale Weg hier, um ein Problem zu lösen. Vielen Dank. –

Antwort

4

Ich bin insgesamt newb. Aber nach viel Zeit und mit etwas Hilfe von mehr Erfahrung Programmierer, ich war in der Lage Rubin zu bekommen die Arbeit mit Sharepoint 2010. Der folgende Code erfordert die ‚ntlm/mechanisieren‘ gem.

Ich habe in der Lage, den Sharepoint-xml von Listen (unten) angegeben herunterladen, um die Liste GUID und die Listenansicht GUID verwenden.

Bearbeiten (23. Mai 2011). Ich hätte darauf hinweisen sollen, dass dieser Code den Edelstein ruby-ntlm benötigt. Hier ist ein anständiger Link, der helfen sollte. Das funktioniert definitiv.

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

Wie haben Sie den SP-Server zur Verwendung von Basic Auth geändert? Haben Sie die Site einfach über IIS konfiguriert, oder haben Sie dies über SP Central Admin getan?

Wenn Sie SP 2007/MOSS verwenden, müssen Sie es über Central Admin ändern; Wenn 2003, müssen Sie es über IIS tun.

Welchen Fehler bekommen Sie, wenn die Anfrage fehlschlägt?

1

NTLM wird von soap4r irgendwie nicht unterstützt, obwohl httpclient es unterstützt.

Bei der Aktivierung von Grund Auth keine Option ist, können Sie prüfen, mit kerberos heißt Auth Verfahren verhandeln. Es könnte einige Wird concequences haben es scheint, check this forum post for more info

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

: diese in Sharepoint Enabling ist ein bisschen schwierig, aber im Grunde darum geht, die folgende auf der Kommandozeile des Servers zu tun. Schließlich müssen Sie die Authentifizierung in soap4r mit auth = anstelle von basic_auth = ich denke, setzen.