2008-11-25 27 views
6

Escribí un servicio de Windows hace unos meses que haría ping a una lista Sharepoint utilizando la función _vti_bin/lists.asmx GetListItemChanges. Funcionó bien hasta hace unas semanas cuando mi empresa actualizó nuestra instancia de Sharepoint a SP1.
Ahora cada vez que mi servicio intenta acceder Sharepoint recibo un error de autenticación 401.1:Autenticación Error al acceder a la lista de Sharepoint a través del servicio web

error:

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)

He comprobado y mis privilegios en el sitio no han cambiado. aquí está el código en el que yo llamo la lista:

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

También se ha llegado a mi conocimiento que la autenticación básica pudo haber sido desactivada en nuestra granja. No creo que esté usando eso, pero puedo estar equivocado.

Respuesta

0

¿Tiene proxies en su red interna?

Estoy pensando en la línea de doble salto, y que Basic Auth no es propenso a eso, pero que NTLM sí lo es. Si tiene un proxy, entonces el doble salto es un problema. Si accede a la máquina directamente y solo puede contar un salto (servicio al servicio web), entonces esto no debería ser un problema.

0

Suponiendo que no es SSL o problemas de autenticación Básica/Windows entonces estoy apostando a este

Para probar iniciar sesión en el servidor local y tratar de navegar por su sitio. Si no puede navegar con éxito utilizando el nombre de usuario/pwd dado anteriormente, pero puede hacerlo desde una PC remota, entonces este es el artículo para usted.

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

Con base en la información proporcionada, no creo que esto es un error de programación. ¿Puede obtener acceso a la interfaz del Administrador de IIS en el servidor que aloja el sitio de SharePoint? Si es así, verifique las tecnologías de autenticación válidas permitidas. ¿Se permiten conexiones anónimas? ¿Está habilitada la Autenticación integrada de Windows? HTTP Basic auth? Pregúntale a tu infraestructura/gente de SharePoint sobre la posibilidad de un doble salto (proxy). Si es así, eso también podría funcionar, pero es difícil configurarlo (delegación de Kerberos). La clase NetworkCredentials parece apoyar todos los esquemas de autenticación estándar admitidos por IIS (a excepción de las formas):

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

puede que tenga que tener a la gente de infraestructuras El SPN para el SharePoint interfaz web:

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

No recomiendo cambiar nada a través del Administrador IIS, sin embargo. Haga que su administrador de SharePoint realice los cambios a los técnicos de autenticación permitidos para el sitio a través de la Administración central de SharePoint.

Saludos, Sam

1

Me acabo de encontrar un tema muy similar y lo resolvió gracias a un artículo del ms KB: http://support.microsoft.com/kb/896861

El bit que se debe tratar es la siguiente:

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.

Esto resolvió el mismo problema en un entorno en el que tenía que fallar todas las soluciones normales (agregar credenciales a la llamada al servicio web).

Cuestiones relacionadas