2010-02-16 2 views
6

Ich habe mehrere ähnliche Szenarien hier erklärt, aber nicht meine besondere. Ich frage mich, ob mir jemand sagen könnte, in welche Richtung ich gehen soll?MVC2 Apps (und andere) teilen WCF-Dienste und Authentifizierung

Ich entwickle zwei (und später) MVC2-Anwendungen. Es wird später auch einen anderen (dickeren) Client geben (WPF oder Silverlight, TBD). Alle müssen dieselbe Authentifizierung verwenden. Für die MVC2-Apps müssen sie (vorzugsweise) einzeln angemeldet sein - dh wenn sich ein Benutzer bei einer MVC2-App anmeldet, sollten sie auf der anderen Seite autorisiert sein, solange das Cookie nicht abgelaufen ist.

Formularauthentifizierung ist zu verwenden.

Alle Apps müssen allgemeine Geschäftsfunktionen verwenden und den Datenbankzugriff über eine gemeinsame WCF Service App ausführen. Es wäre schön (denke ich), wenn die WCF nicht öffentlich zugänglich ist (dh hinter FW blockiert). Der dickere Client könnte eine zusätzliche Service-Schicht verwenden, um auf die Common WCF-App zuzugreifen.

Was diese aussehen soll ist:

MVCApp1 -> WCFAppCommon

MVCApp2 -> WCFAppCommon

ThickClient -> WCFApp2 -> WCFAppCommon

Ist es möglich, alle zur Durchführung der Authentifizierung/Autorisierung in der WCFAppCommon? Ansonsten denke ich, ich muss alle Sicherheitslogik in den MVCApps und WCFApp2 wiederholen, während es für mich natürlich in WCFAppCommon sitzt. Auf der anderen Seite scheint es, wenn ich mich in WCFAppCommon authentifizieren/autorisieren würde, die Formularauthentifizierung nicht zu verwenden.

Wo ich mögliche Lösungen gesehen habe (die ich noch nicht ausprobiert habe) scheinen sie viel komplexer als Formularauthentifizierung und eine einzelne DB.

Jede Hilfe dankbar,

Phil

Antwort

4

Ich dachte, ich sollte darauf zurückkommen mit dem, was ich gelernt habe (und neu gelernt habe).

Zuerst die neu erlernte Lektion - nicht auf einer Architektur fixiert werden und dann versuchen, alles andere fit zu machen. Ich bin auf .NET, SQL Server, WCF, MVC2, EF4 und IIS7 festgelegt. In meinem Kopf zu fixieren, wie ich möchte, dass diese zusammenpassen, ist ein bisschen blöd! Besser rausgehen und schauen, welche Führung existiert.

Das bringt mich zu dem, was ich gelernt - hier ein Link:

http://wcfsecurityguide.codeplex.com/

ich diesen Artikel ein paar Mal diskontiert, weil es ein bisschen veraltet ist. Allerdings würde ich sagen, dass es tatsächlich sehr relevant ist, und wenn Sie ein Projekt beginnen, das sich aus der Ferne mit der Sicherung von Diensten beschäftigt, schauen Sie sich das an. Teil IV hatte alles, was ich brauchte.

1

Wir verwenden WCF Web Application-Hosting-Reporting-System (wir es von Silverlight zugreifen) und da es gleiche Maschinentasten wie unsere MVC-Anwendung ist mit - wir können Cookies teilen Authentifizierung auch.

Andernfalls müssen Sie ein Authentifizierungsticket (benutzerdefiniert oder nicht) an Ihre WCF-Anwendung senden.