Pregunta

Estoy intentando hacer referencia a un elemento de la lista de Sharepoint en mi página aspx utilizando el modelo de objetos del cliente de Sharepoint.Se me han concedido privilegios de "Control total" en esta lista.El problema es que solo puedo completar la solicitud cuando configuro ClientContext.Credentials explícitamente con mi contraseña codificada en la página.Obviamente, no quiero que los visitantes de mi sitio tengan acceso a cosas basadas en mis credenciales.

Esto lo hace funcionar pero no cumple con los requisitos del proyecto:

ClientContext cc = new ClientContext("http://sharepoint.site.com/sitename");
cc.Credentials = new NetworkCredential("username", "password", "domain");

Lo configuré en web.config y parece estar funcionando bien.cuando reviso WindowsIdentity.GetCurrent().Name muestra mi información correcta de "dominio ombre de usuario", lo que creo que debería significar que mis credenciales son válidas.Entonces, ¿por qué SharePoint rechaza la cc.ExecuteQuery(); con una "System.Net.WebException El servidor remoto devolvió un error:(401) No autorizado."?

Puedo poner un cuadro de texto en la pantalla que le permite al usuario ingresar su contraseña para crear un objeto NetworkCredential, pero puedo decirles ahora mismo que el cliente (mi jefe) no estará contento con esto y me lo dirá. quiere que encuentre una solución alternativa.

Editar:El sitio de SharePoint está alojado en un sitio diferente, pero dentro de la misma intranet de la empresa.

¿Fue útil?

Solución

¿Estás utilizando kerberos, ntlm, formularios o reclamos?Supongo que está utilizando NTLM y se encuentra con el "problema" del doble salto de NTLM.

http://blogs.msdn.com/b/besidethepoint/archive/2010/05/09/double-hop-authentication-why-ntlm-fails-and-kerberos-works.aspx

El siguiente paso más sencillo probablemente sea cambiar su sitio a Kerberos.Tengo un artículo de blog donde describí algunos recursos que ayudan a configurar Kerberos en SharePoint.

http://steve.thelineberrys.com/resources-for-setting-up-kerberos-authentication-in-sharepoint/

Otros consejos

¿Has intentado usar DefaultCredentials en cambio, ¿recoger la identidad del usuario actual?

Además:¿Este aspx se ejecuta en su sitio de SharePoint?Si es así, ¿por qué utiliza el modelo de objetos del cliente?Simplemente use el servidor OM.Mucho más fácil y con menos complicaciones.

Licenciado bajo: CC-BY-SA con atribución
scroll top