2008-11-25 12 views
6

Ich schrieb einen Windows-Dienst vor ein paar Monaten, die eine Sharepoint-Liste mit _vti_bin/lists.asmx Funktion GetListItemChanges pingen würde. Es funktionierte bis vor einigen Wochen, als mein Unternehmen unsere Sharepoint-Instanz auf SP1 umstellte.
Nun, wenn mein Dienst Sharepoint zuzugreifen versucht, erhalte ich eine 401.1 Authentifizierungsfehler:Authentifizierungsfehler beim Zugriff auf Sharepoint-Liste über Web-Service

Fehler:

You are not authorized to view this page
You do not have permission to view this directory or page using the credentials that you supplied.
Please try the following: Contact the Web site administrator if you believe you should be able to view this directory or page.
HTTP Error 401.1 - Unauthorized: Access is denied due to invalid credentials.
Internet Information Services (IIS)

Ich habe überprüft und meine Privilegien auf der Website haben sich nicht geändert. hier ist der Code, in dem ich die Liste aufrufen:

Lists listsService = new Lists(); 
listsService.Credentials = new NetworkCredential("UserName", "Password", "domain"); 
Result = listsService.GetListItemChanges("List name", null, dTime.ToString(), null); 

Es hat sich auch meine Aufmerksamkeit, dass die Standardauthentifizierung deaktiviert wurde möglicherweise auf unserem Hof ​​gebracht worden. Ich glaube nicht, dass ich das benutze, aber ich kann mich irren.

Antwort

0

Haben Sie Proxies in Ihrem internen Netzwerk?

ich entlang der Linien von Double-Hop-Denken, und das Grund Auth ist, dass nicht anfällig, aber das NTLM ist. Wenn Sie einen Proxy haben, ist der Doppelsprung ein Problem. Wenn Sie direkt auf den Computer zugreifen und nur einen Hop zählen können (Dienst für Webdienst), sollte dies kein Problem darstellen.

0

Unter der Annahme, dass es nicht SSL oder Basic/Windows-Authentifizierung Probleme dann bin ich wette diese

auf dem lokalen Server anmelden Um zu testen und versuchen, Ihre Website zu durchsuchen. Wenn Sie nicht erfolgreich mit dem oben angegebenen Benutzernamen/Pwd suchen können, aber Sie können von einem Remote-PC, dann ist dies der Artikel für Sie.

You receive error 401.1 when you browse a Web site that uses Integrated Authentication and is hosted on IIS 5.1 or IIS 6

http://support.microsoft.com/default.aspx?scid=kb;en-us;896861

1

Basierend auf den Informationen, Zweifel ich dies ein Programmierfehler ist. Können Sie Zugriff auf die IIS-Manager-Schnittstelle auf dem Server erhalten, auf dem die SharePoint-Website gehostet wird? Wenn dies der Fall ist, überprüfen Sie die zulässigen zulässigen Authentifizierungstechnologien. Sind anonyme Verbindungen erlaubt? Ist die integrierte Windows-Authentifizierung aktiviert? HTTP Basic-Authentifizierung? Fragen Sie Ihre Infrastruktur/SharePoint-Mitarbeiter nach der Möglichkeit eines Double-Hop (Proxy). Wenn ja, könnte das auch funktionieren, aber es ist mühsam einzurichten (Kerberos-Delegation). Die NetworkCredentials Klasse erscheint alle Standard-Authentifizierungsschemata unterstützt von IIS (mit Ausnahme von Formen) zu unterstützen: die Infrastruktur Menschen SPN für die Sharepoint-Web-Frontend eingestellt

http://msdn.microsoft.com/en-us/library/system.net.networkcredential(VS.80).aspx

Möglicherweise müssen Sie haben:

http://support.microsoft.com/kb/929650

ich davon abraten, etwas über den IIS-Manager zu ändern, jedoch. Lassen Sie Ihren SharePoint-Administrator die Änderungen an den für die Website zulässigen Authentifizierungstools über die SharePoint-Zentraladministration vornehmen.

Grüße, Sam

1

Ich habe gerade ein sehr ähnliches Problem und löste es dank einer MS KB-Artikel: http://support.microsoft.com/kb/896861

Das Bit, das Sie versuchen sollten, ist dies:

Method 2: Disable the loopback check Follow these steps:

  1. Click Start, click Run, type regedit, and then click OK.
  2. In Registry Editor, locate and then click the following registry key: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa
  3. Right-click Lsa, point to New, and then click DWORD Value.
  4. Type DisableLoopbackCheck, and then press ENTER.
  5. Right-click DisableLoopbackCheck, and then click Modify.
  6. In the Value data box, type 1, and then click OK.
  7. Quit Registry Editor, and then restart your computer.

Dies löste das gleiche Problem in einer Umgebung, die ich hatte, wodurch alle normalen Lösungen (Hinzufügen von Anmeldeinformationen zum Web-Service-Aufruf) fehlschlugen.

Verwandte Themen