2009-05-19 7 views
2

Ich habe eine funktionierende WPF-Anwendung, in der ich meine eigene benutzerdefinierte Authentifizierung für einen Back-End-WCF-Dienst implementiert habe. Wenn ich diesen Dienst von WPF zuzugreifen, richten Sie die ServiceProxy wie folgt:Silverlight WCF-Authentifizierung (Hilfe von WPF zu Silverlight)

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

und weil ich HTTPS bin mit der uid/PWD ist sicher.

In Silverlight 2 ist kein .ClientCredentials-Objekt auf dem Proxy. Die einzige Option, die ich gefunden habe, ist, der EVERY WCF Exposed-Methode für Uid/Pwd zwei String-Parameter hinzuzufügen. Das hört sich für mich nach Wahnsinn an, da muss es einen besseren Weg geben, oder?

+0

ich gleiches Problem ... – Calanus

Antwort

4

Leider unterstützt Silverlight 2 nur basicHttpBinding, was bedeutet, dass es ClientCredentials nicht unterstützt.

Die 2 Optionen, die Sie haben, sind: 1. Wie Sie erwähnt, den Benutzernamen und Pass mit jeder Anfrage übergeben. 2. Verwenden Sie die asp.net-Authentifizierung und aktivieren Sie den asp.net-Kompatibilitätsmodus in Ihren Diensten.

- NB TransportSecurityWithMessageCredentials ich schon erwähnt, scheinen unten nicht den Cut für SL3 so nur die Optionen der 2 oben für beide SL2 und SL3

Silverlight 3 verbessert mit TransportSecurityWithMessageCredentials zu dieser Geschichte zu machen und Sie können mehr über diese auf dem Silverlight Web Services-Teamblog erfahren (Würde verknüpfen, aber anscheinend, wie ich einen neuen Benutzer bin ich allowed0 nicht

HTH

+0

Haben Sie einen Link zur Verwendung der asp.net-Authentifizierung durch Silverlight 2? Bietet Transport SecurityWithmessageCredentials in etwa dasselbe wie ClientCredentials in WPF? – Nate

+1

Für compat asp.net-Modus im Wesentlichen alles, was Sie tun müssen, ist Ihre wcf Klassen mit [AspNetCompatibilityRequirements (RequirementsMode = AspNetCompatibilityRequirementsMode.Required)] dekorieren Sie dann Zugriff auf Httpcontext erhalten, das bedeutet, dass Sie die Benutzereigenschaften durch die asp bevölkerten zugreifen können. Netto-Mitgliedschaft. Hilfreicher Link, den ich gefunden habe, war http://blogs.msdn.com/brada/archive/2008/05/03/accessing-the-asp-net-authentication-profile-and-role-service-in-silverlight.aspx Ich kann die Ähnlichkeiten für TransportSecurityWithMessageCredentials nicht kommentieren, da ich noch keine Chance hatte, damit zu spielen. HTH –