Frage

Ich bin Hosting eine ASP.NET Web-Anwendung auf einer Sharepoint 2007-Box, die einen Web-Service-Aufruf zu Sharepoint macht ein Dokument Standort abgerufen wird (genauer gesagt, die GetListItems Methode).

Der Dienst wird mit geben Anmeldeinformationen eines gültigen Sharepoint-Konto mit den entsprechenden Berechtigungen verbraucht wird.

ListServiceWrapper listService = new ListServiceWrapper();

/*Pass credentials to service call object*/
listService.Credentials = new NetworkCredential(spUserName, spPassword, spDomain);

/*Set the Url property of the service for the path to a subsite.*/
listService.Url = ConfigurationManager.AppSettings.Get("rootSite") + "/_vti_bin/lists.asmx";

Wenn die Web-App läuft lokal auf meinem Entwicklungsfeld (Ich bin ein Sharepoint-Benutzer auf der gleichen Domain), funktioniert der Service-Aufruf groß. Wenn Sie mit dem Sharepoint-Box zum Einsatz, die Anwendung zurückgibt:

  

Die Anforderung ist fehlgeschlagen mit HTTP-Status   401:. Unerlaubte

Wir haben versucht, die App-Pool Benutzer des Web-App auf der Sharepoint-Box zu einem autorisierten Sharepoint Benutzern zu ändern, haben aber noch kein Glück gehabt. Ich denke, wenn wir die Sharepoint-Authentifizierung Kerberos statt NTLM geändert, würde es das Problem lösen. Leider ist das nicht eine Option hier. Dies hat möglicherweise etwas mit dem NLTM Double-Hop-Problem zu tun?

War es hilfreich?

Lösung

Ja, das ist das doppelte Hop-Problem im Zusammenhang.
In NTLM, Sie sind nicht auf Remote-Dienste zur Authentifizierung erlaubt. Wie Sie gesagt haben, müssen Sie die Kerberos-Anmeldeinformationen an andere Dienste übertragen.

Optionen können Sie versuchen:

  • Wechseln Sie zu Kerberos. Dies ist die einzig richtige Lösung, aber es ist nicht so einfach, wie Sie alle SPN erstellen, müssen werden und sicher sein, Port 88 geöffnet ist.
  • Installieren Sie sind ASP.Net-Anwendung in der Sharepoint-Feld und aktivieren DisableLoopbackCheck
  • ein Dienstkonto verwenden, um Sharepoint zu protokollieren. In diesem Fall wird Sharepoint nicht unter dem Benutzerkonto ausgeführt werden, so dass Sie die Sicherheit umgehen müssen sie
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top