Ich bin relativ neu in der WCF-Welt so meine applogies für die Newbie-Frage. Ich bin gerade dabei, eine Schicht von WCF-Diensten zu entwerfen. Einer von ihnen ist ein Authentifizierungsdienst, so kam ich mit dem folgenden Authentifizierungsmechanismus:
IUserService.TryAuthenticateUser(string username, string password, out string key)
Grundsätzlich versucht der Benutzer, sich zu authentifizieren, und wenn er erfolgreich ist, erhält er einen Sitzungsschlüssel/Sicherheitsschlüssel/was auch immer... der Schlüssel wird dann für jede andere "WCF-Aktion" benötigt, z. B.
IService.GiveMeMyFeatures(string key);
IService.Method1(string key);
Dieser Mechanismus sieht extrem intuitiv für mich und ist auch sehr einfach zu implementieren, so was stört mich ist, warum ich nicht ähnliche WCF Beispiele finden? Dieser eindeutige Schlüssel (der praktisch ein Sitzungsschlüssel mit wcf-seitigem Ablauf und allem ist) kann dann von den verschiedenen Anwendungen verwendet werden, je nach Architektur der Anwendung: für ASP.NEt kann er in einem Cookie gespeichert werden, für Winform/WPF/Mobile kann er in der Form-Klasse in einem Feld gespeichert werden und so weiter...
Jetzt kommt Frage Nummer 1: Was halten Sie von dieser Methode?
Ich habe auch gelesen, dass ich die eingebauten ASP.NET-Authentifizierungsdienste (mit Mitgliedschaftsanbietern usw... wenn ich richtig verstanden habe) verwenden kann. Aus architektonischer Sicht gefällt mir diese Methode nicht wirklich, da bei der Authentifizierung von einer ASP.NET-Seite der Arbeitsablauf wie folgt aussehen wird: ASP.NET -> WCF -> ASP.NET-Authentifizierungsdienst -> Antwort
In diesem Szenario könnte man auch die WCF-Schicht umgehen und die Methoden des Authentifizierungsdienstes direkt von der Asp.net-Seite aus aufrufen. Ich weiß, dass ich durch die WCF-Schicht für jede Authentifizierungsanforderung etwas Leistung verliere, aber es ist wichtig für mich, eine schöne, geschichtete Architektur zu haben...
Und hier ist Frage Nummer 2: Was sind die Vor- und Nachteile dieser Methode gegenüber der ersten, und warum ist sie so beliebt, obwohl sie aus Sicht der Architektur irgendwie falsch ist?
Ich habe auch gelesen, dass ich für jeden WCF-Methodenaufruf Benutzeranmeldeinformationen senden und den eingebauten Mechanismus zur Authentifizierung und ordnungsgemäßen Beantwortung der Anforderung verwenden kann.
F3: Was halten Sie von dieser Methode?
Und um zusammenzufassen - offensichtlich gibt es viele Authentifizierungsmethoden, aber welche denken Sie ist am besten und die meisten generischen (wenn man bedenkt, dass die WCF-Dienste von asp.net/wpf/mobile/etc... aufgerufen werden)?
Vielen Dank im Voraus :)