2009-05-19 6 views
2

J'ai une application WPF de travail existante dans laquelle j'ai implémenté ma propre authentification personnalisée à un service WCF backend. Quand j'accéder à ce service de WPF, la configuration ServiceProxy comme suit:Authentification WCF Silverlight (aide allant de WPF à Silverlight)

proxy.ClientCredentials.UserName.UserName = "test"; 
proxy.ClientCredentials.UserName.Password = "pass"; 

et parce que je suis en utilisant le protocole HTTPS uid/passwd est sécurisé.

Dans Silverlight 2, il n'existe aucun objet .ClientCredentials sur le proxy. La seule option que j'ai trouvée est d'ajouter deux paramètres de chaîne à CHAQUE méthode Exposed de WCF pour Uid/Pwd. Cela ressemble à de la folie pour moi, il doit y avoir une meilleure façon, non?

+0

J'ai même problème ... – Calanus

Répondre

4

Malheureusement Silverlight 2 ne supporte que basicHttpBinding ce qui signifie qu'il ne supporte pas ClientCredentials.

Les 2 options que vous avez sont: 1. Comme vous l'avez mentionné en passant le nom d'utilisateur et passer avec chaque demande. 2. en utilisant l'authentification asp.net et activer le mode de compatibilité asp.net dans vos services.

- NB TransportSecurityWithMessageCredentials-je mentionné ci-dessous ne semblent pas faire la coupe pour SL3 si seules options sont les 2 ci-dessus pour les deux SL2 et SL3

Silverlight 3 améliore cette histoire avec TransportSecurityWithMessageCredentials et vous pouvez en savoir plus à ce sujet sur le blog Silverlight Web services Team (relierait à elle, mais apparemment je suis un nouvel utilisateur, je ne suis pas admis0

HTH

+0

Avez-vous un lien vers l'utilisation de l'authentification asp.net via silverlight 2? Est-ce que Transport SecurityWithmessageCredentials fournit à peu près la même chose que ClientCredentials dans WPF? – Nate

+1

Pour le mode de compatage asp.net, il vous suffit essentiellement de décorer vos classes wcf avec [AspNetCompatibilityRequirements (RequirementsMode = AspNetCompatibilityRequirementsMode.Required)] Vous accédez alors à HttpContext, ce qui signifie que vous pouvez accéder aux propriétés de l'utilisateur remplies par l'asp. adhésion nette. Le lien que j'ai trouvé utile a été http://blogs.msdn.com/brada/archive/2008/05/03/accessing-the-asp-net-authentication-profile-and-role-service-in-silverlight.aspx Impossible de commenter les similarités pour TransportSecurityWithMessageCredentials car il n'a pas encore eu l'occasion de jouer avec. HTH –