2010-11-17 5 views
1

J'essaie de passer un appel au service Web de recherche SharePoint à partir d'une application Asp.NET 4.0 qui ne réside pas sur le serveur SharePoint. Tout semble fonctionner, acceptez qu'il utilise les informations d'identification de l'AppPool (un compte de service de domaine) pour s'authentifier auprès de SharePoint, qui ne renvoie que les résultats auxquels cette broche a accès. Ce que je dois être capable de faire est d'usurper l'identité de l'utilisateur appelant, afin que j'obtienne des résultats pour cet utilisateur et non le compte de domaine. J'ai défini le serveur sous lequel l'application s'exécute afin d'être approuvé pour la délégation au HTTP spn que le serveur SharePoint utilise, mais une erreur 401 s'affiche lorsque j'effectue l'emprunt d'identité dans mon code. Que pourrais-je faire de mal?Délégation Asp.NET et appel d'un service Web SharePoint

+0

Je vais essayer de poster ceci sur http://serverfault.com/ :-) – IrishChieftain

+0

Il s'avère que la délégation n'a pas été configurée correctement. Tout fonctionne maintenant. –

Répondre

0

vous devez emprunter l'identité de votre appel au service Web sharepoint.

vous pouvez le faire à un niveau d'application Web, soit avec l'utilisateur appelant ou un utilisateur statique, à l'intérieur du web.config dans le nœud system.web en utilisant l'élément d'identité, à savoir ..

<system.web> 
    <identity impersonate="true" /> 
</system.web> 

ou vous pouvez le faire avec le code en ligne lorsque vous faites votre appel demandant.

Voici un Microsoft KB sur la façon d'usurper l'identité avec une application asp.net. http://support.microsoft.com/kb/306158

+0

Merci pour la réponse, mais cela fonctionne finalement correctement ... les AD n'ont pas correctement configuré la délégation, alors maintenant que cela est corrigé, l'usurpation d'identité fonctionne correctement. Merci encore! –