2009-06-02 19 views
12

Me estoy volviendo loco con éste y no puedo encontrar ninguna información en cualquier lugar decente ..conectarse y autenticarse a SharePoint con WCF

hay un montón de información acerca de la conexión en torno a SharePoint 3.0 Servicios Web con WCF y NTLM interpretación. Sin embargo, cuando el cliente que accede a los servicios de SharePoint está alejado de la red de SharePoint y necesita autenticarse, ¿cómo se puede configurar y pasar las credenciales al servicio de SharePoint?

¿Puedo especificar un nombre de usuario y contraseña de Windows local en el cuadro de SharePoint dentro de servicemodel.config .. nuestra instancia de SharePoint se ejecuta como independiente fuera del dominio que está accediendo a ella. Por lo tanto, la suplantación es irrelevante ya que los usuarios del dominio no existen en el cuadro de compartir.

He probado muchas combinaciones como los siguientes códigos .. sin embargo repetidamente consigo excepciones tales como:.

"La petición HTTP no está autorizado con el esquema de autenticación de cliente 'Anónimo' El encabezado de autenticación recibido del servidor fue ' NTLM, ámbito básico = "wss.internaldev.local"'

puede cualquier persona proporcionar un ejemplo de conexión a un servicio web de SharePoint "a distancia" con las credenciales de Windows

ListsSoapClient proxy = new ListsSoapClient(); 

proxy.ClientCredentials.Windows.ClientCredential.UserName = "admin_user"; 
proxy.ClientCredentials.Windows.ClientCredential.Password = "admin_password"; 
proxy.ClientCredentials.Windows.AllowedImpersonationLevel = System.Security.Principal.TokenImpersonationLevel.Identification; 

listItems = proxy.GetListItems(...); 

proxy.Close(); 

ejemplos encuadernación:.?

<security mode="TransportCredentialOnly"> 
    <transport clientCredentialType="Windows" proxyCredentialType="None" /> 
</security> 

o ..

<security mode="TransportCredentialOnly"> 
    <transport clientCredentialType="Ntlm" /> 
</security> 

comportamiento:

<behavior name="behavior_WSS"> 
    <clientCredentials> 
    <windows allowedImpersonationLevel="Impersonation" allowNtlm="true" /> 
    </clientCredentials> 
</behavior> 

o

<windows allowedImpersonationLevel="Delegation" allowNtlm="true" /> 
+1

Esta pregunta podría ser más adecuado para ServerFault, com – Jazza

+1

Hay un proyecto en CodePlex que añadir soporte WCF para SharePoint. http://spwcfsupport.codeplex.com/ – Hameds

Respuesta

1

¿Usted intentó the things suggested here?

por ejemplo, en el código:

proxy.ClientCredentials.Windows.AllowedImpersonationLevel = TokenImpersonation.Impersonate; 
// AllowNtlm = false; 
+1

Sí, he intentado tantas combinaciones de suplantación/Permitir ntlm .. Llegué a tirar el pelo fuera del tiempo y luego me di por vencido. Estoy bastante seguro de que no puedo especificar a menos que el proceso que llama al servicio ya esté autenticado por Windows. es decir, no puedo especificar una cuenta de servicio particular en el código. – misteraidan

Cuestiones relacionadas