[WP7] Gestion de l’authentification sous Windows Phone 7
L’une des problématiques que l’on rencontre à l’heure actuelle lorsque l’on développe des applications Windows Phone 7 concerne la gestion de l’authentification. En effet, il s’avère que l’authentification NTLM n’est pas supporté du coup, on est obligé de trouvé une solution de contournement.
Une des solutions possibles consiste à injecter/ajouter, dans les entêtes de la requête qui est envoyé, des entêtes personnalisées. Et pour bien faire, plutôt que de le faire manuellement sur chaque appel du service WCF, on va passer par un petit MessageInpector WCF pour faire en sorte que cela soit fait automatiquement 
Pour créer son Message Inspector WCF, il faut implémenter l’interface IClientMessageInspector. Malheurement, cette interface n’est pas disponible dans Silverlight mais , il est possible de télécharger le sample suivant et de récupérer le projet nommé SilverlightMessageInspector pour disposer de là-dîte fonctionnalité au sein de son application (Silverlight / Windows Phone 7).
Une fois que cela est fait, il faut créer le service WCF, en activant la compatibilité ASP.NET et vérifier, dans les méthodes, si les entêtes reçues contiennent bien des login/mot de passe corrects (éventuellement, en s’assurant de cela avec une connexion à une base de données, etc.):

A présent, il est temps de créer, côté Windows Phone, le MessageInspector WCF qui va injecter, lors de chaque requête, les entêtes nécessaires (login/mot de passe):

Une fois cette étape terminée, il ne reste plus qu’à appeler le service, en utilisant notre nouveau MessageInspector:

Et le tour est joué 
Attention tout de même: avec cette technique, les entêtes sont passées en clair donc il est impératif d’utiliser une liaison sécurisée (SSL) pour éviter que quelqu’un n’intercepte les appels WCF et donc les crédentials.
A+
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 :