2009-08-13 17 views
0

Meine Website verwendet Formularauthentifizierung. Ich habe Silverlight 3 Modul, das im Kontext von ASP - authentifizierten Benutzer arbeiten soll. Silverlight-Modul spricht mit WCF, das von derselben asp.net-Website gehostet wird, aber das Problem ist, dass es sich nicht beim WCF-Dienst authentifizieren kann. Ich führe Fiddler und ich sehe, dass .ASPXAUTH Cookie nicht an den WCF-Dienst gesendet wird. Wie erzwinge Silverlight, um diesen Cookie vom Browser zu erhalten und an den Dienst zu senden?Silverlight und ASP.NET-Autorisierung

Antwort

1

Endlich habe ich es gelöst. Das Problem des fehlenden Cookies wurde durch einen falschen Hostnamen verursacht. Ich schickte asp.net Anfragen an myhostname, aber SL rief WCF unter Verwendung myhostname.mylocaldomainnam.local an. Aus diesem Grund gab es während der WCF-Aufrufe keinen .aspauth Cookie.

0

Ich habe es erfolgreich verwendet. Zuerst stelle ich sicher, dass es einen Dienstendpunkt für den von ASP.NET verwendeten WCF AuthorizationService gibt. Verwenden Sie dann das Silverlight-Projekt, um eine "Service-Referenz" für den AuthorizationService zu generieren. Schließlich verwenden Sie in Ihrem Modul diese Servicereferenz, um sich mit Ihren Anmeldeinformationen, die in Ihrem Provider gespeichert sind, einzuloggen. Wenn Sie weitere Informationen dazu haben, wie Sie Ihre Website erstellt haben, kann ich möglicherweise eine präzisere Antwort auf Ihr Problem geben.

+0

Benutzer meldet sich in asp.net Website. Dann kann er Silverlight Modul eingeben. Ich möchte nicht, dass sich der Benutzer erneut in Silverlight anmeldet und ich möchte auch nicht sein Passwort an einem temporären Ort speichern (Browser/Sitzung) – tomo

+0

Sie sind ein und dasselbe. Wenn Sie sich auf einer Seite anmelden, die die Formularauthentifizierung verwendet, wird das gleiche Cookie wie mit dem WPF-Authentifizierungsdienst erstellt. Wenn Sie sich also auf der Seite anmelden, können Sie Silverlight passieren, genau wie die Anmeldung bei Silverlight die Weiterleitung an ASP.NET ermöglicht. BTW, das Passwort wird nirgendwo mit der Formularauthentifizierung gespeichert. – Rick

+0

Warum muss ich einen Verweis auf den Authentifizierungsdienst hinzufügen? Muss ich irgendeine Funktion (oder etwas konfigurieren) von diesem Service im Silverlight Client aufrufen? – tomo