[SharePoint 2010] Appeler un service Web depuis une application WPF avec WCF
Je me suis récemment retrouvé à faire une application WPF qui communique avec un site SharePoint grâce aux services web tel Lists.asmx http://msdn.microsoft.com/en-us/library/dd878586(v=office.12).aspx . Le hic, et oui il y a toujours un hic, c'est que j'ai voulu rajouté la référence vers ce Web Service en tant qu'une Service Reference, et non pas en tant que Web Reference.
Pourquoi une Service Reference et non une Web Reference ?
Tout simplement parce que WCF nous offre un meilleur contrôle de la communication avec le web service que la web reference. Passer par un service WCF va nous permettre aussi de profiter des dernières versions du Framework .NET alors que la web reference va nous cantonner à la version 2.0 du Framework.
Le problème, c'est que ça va augmenter la complexité d'utilisation, puisqu'il va falloir configurer notre référence.
Les changements ?
Pour fonctionner, il va falloir changer le mode de sécurisation de la communication. En effet, les web services SharePoint vont devoir utiliser le type d'authentification Ntlm. Cependant suivant si le service est accessible par http ou https, le mode de sécurité ne va pas être le même. Il faudra utiliser le mode "Transport" pour https, et le mode "TransportCredentialsOnly" en http.
Ce qui donnera dans notre app.config ceci :
<security mode="Transport">
<transport clientCredentialType="Ntlm" />
</security>
Jicay
Ce post vous a plu ? Ajoutez le dans vos favoris pour ne pas perdre de temps à le retrouver le jour où vous en aurez besoin :