NerdishByNature

Login in einer Silverlight Anwendung

Eine Silverlight Anwendung lebt von und mit der Interaktion eines Users. Manchmal sollen aber bestimmte Aktionen beschränkt im Zugriff sein oder es werden bestimmte Daten des Users benötigt. Das übliche Vorgehen ist, dass sich der User einloggt bzw. registiert. In einer ASP.NET Website ist dies ohne Weiteres über die schon vergefertigten Login Controls möglich. Über die web.config wird die Authorization und Authentication gehandelt. Bei Silverlight ist dies nicht möglich. Mit der .NET Version 3.5 und der WCF ist auch ein WebService mit ausgeliefert worden. Der AuthenticationService von ASP.NET bietet grundlegenden Funktionalitäten für die Authentifizierung eines Users.
Die bereit gestellten Methoden des Service sind:

Login
Die Methode Login validiert die übergebenen Benutzerinformationen und erstellt bei erfolgreicher Anmeldung ein Cookie.

Logout
Wie der Name schon vermuten läßt, wird der aktuell angemeldete User mit der Logout Methode vom System abgemeldet und das Cookie gelöscht.

IsLoggedIn
Mit der Methode IsLoggedIn wird überprüft, ob der aktuelle Benutzer eingeloggt ist oder nicht.

ValidateUser
Diese Methode ValidateUser ist ähnlich der Login-Methode. Es wird versucht den User anzumelden jedoch ohne ein Authentifizierungsticket (Cookie) zu erstellen.

Wie wird der Service nun verwendet?
Der Service liegt in meinem Fall in einer bestehenden Website. In einem Unterordner erzeugt man eine Datei mit dem Namen AuthenticationService.svc (der Name kann beliebig gewählt werden sollte aber aussagekräftig sein). Die svc Datei beinhaltet im Moment noch nichts. Die einzige Zeile die hinzugefügt werden muss ist