Bienvenue à Blogs CodeS-SourceS Identification | Inscription | Aide

Thomas Lebrun

Tout sur WPF, LINQ, C# et .NET en général !

Actualités

[Silverlight] Authentification Windows avec Silverlight 3

J’ai récemment eu besoin de mettre en place un peu de sécurité sur l’un des projets Silverlight sur lequel je travaille. Il fallait faire simple: récupérer l’ensemble des informations de l’utilsiateur connecté.

Pour cela, rien de plus simple: on laisse faire l’authentification Windows qui est nativement gérée par Silverlight 3. Lors de mes tests, qui se faisait avec le serveur Web intégré à Visual Studio (à savoir Cassini), tout se passait bien donc, on passe en production.

Et là, c’est le drame: une fois sur 2, il m’est impossible d’appeler les services WCF utilisés par l’application, car je recevais des erreurs 401 (accès non autorisé).

Après investigations, je suis tombé sur ce site qui m’a finalement donné la raison de l’échec de l’appel des services:

http://developers.de/blogs/damir_dobric/archive/2009/08/22/soap-faults-and-new-network-stack-in-silverlight-3.aspx

La faute revient tout simplement à cette ligne:

   1: bool registerResult = WebRequest.RegisterPrefix("http://", WebRequestCreator.ClientHttp);

A priori tout simple, ce bout de code permet d’indiquer au runtime Silverlight 3 qu’il doit utiliser la “Client HTTP Stack”, plutôt que la “Browser HTTP Stack”, ce qui permet, en cas d’erreur sur un serice WCF, d’avoir le descriptif complet de l’exception plutôt qu'e la fameuse erreur: “Error 404: Not found”.

Cependant, il s’avère que ce bout de code empêche également le proxy de votre service WCF d’envoyer les headers d’authentification ! Du coup, impossible de vous authentifier auprès du service.

 

Voila, en espérant que cela vous aide et vous évite de perdre trop de temps Wink

 

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 :
Posted: vendredi 6 novembre 2009 13:35 par Thomas LEBRUN
Classé sous : ,

Commentaires

simon ferquel a dit :

Attention, ca ne bloque que l'authentification Windows Intégrée (qui de toute façon ne fonctionne QUE sous IE). Pour une authentification basée sur l'ASP.Net Membership Provider, y'a pas de soucis, il faut juste penser à partager le même CookieContainer pour tous les proxys.

# novembre 7, 2009 13:03

Thomas LEBRUN a dit :

C'est bien pour cela que le titre de mon post parle d'authentification Windows ;)

Mais merci pour la précision !

# novembre 7, 2009 14:25

smo a dit :

L'authentification intégrée fonctionne aussi sous Firefox depuis bien longtemps. Pas encore sous chrome, mais ça arrivera sans doute l'année prochaine...

Pour la configurer, chercher "firefox ntlm" dans google.

# novembre 18, 2009 00:19
Les commentaires anonymes sont désactivés

Les 10 derniers blogs postés

- TechDays Paris 2012 : Session pleinière jour 3 par Blog Technique de Romelard Fabrice le il y a 19 heures et 55 minutes

- Mishra Reader : un lecteur RSS très Zune Style en Open Source ! par Cyril Sansus le il y a 22 heures et 28 minutes

- [framework 4] Les Tasks et le Thread UI par Fathi Bellahcene le 02-09-2012, 00:33

- Workflow Foundation 3 a un pied dans la tombe par Blog de Jérémy Jeanson le 02-08-2012, 22:15

- TechDays Paris 2012 : Nouvelles tendances du poste de travail - Bring Your own PC par Blog Technique de Romelard Fabrice le 02-08-2012, 19:42

- TechDays Paris 2012 : System Center Service Manager 2012 Vue d’ensemble par Blog Technique de Romelard Fabrice le 02-08-2012, 17:32

- TechDays Paris 2012 : Pleinière second jour par Blog Technique de Romelard Fabrice le 02-08-2012, 16:23

- TechDays Paris 2012 : Retour d'expérience sur la mise en place d'un Cloud Privé par Blog Technique de Romelard Fabrice le 02-08-2012, 16:04

- TechDays Paris 2012 : Comment SharePoint a sauvé mes TechDays par Blog Technique de Romelard Fabrice le 02-07-2012, 23:59

- Perspective 3.0 pour Silverlight 5.0 par Perspective le 02-07-2012, 22:39