Hallo,
die built-in Authentifizierung über eine SQL-Server-MDB-Datei in ASP.NET MVC3 passt mir garnicht. Ich möchte eine eigene Authentifzierung implementieren, aber dazu scheint es nötig zu sein, gleich einen kompletten MembershipProvider zu implementieren. Für das bisschen User/Passwort-Zeug, das ich brauche, ist mir das zu viel Overhead.
Ich erinnere mich noch an die good-old ASP.NET 2.0-Days. Da gab es noch so ein FormsAuthentication.RedirectFromLoginPage oder so ähnlich. Damit wurde die ganze Authentifizierung so einfach wie
wenn Benutzername und Passwort richtig dann
Forms.Authentication.RedirectFromLoginPage(Zu_besuchende_Seite);
Kann man das in ASP.NET MVC3 nicht auch vereinfachen, oder muss ich tatsächlich so ein Membership Provider bauen?
FormsAuthentication gibt es immernoch, Redirect gibt es in jedem Controller und selbst wenn du einen MembershipProvider benutzt zwingt dich keiner alle Methoden zu implementieren.
Aber um deine Frage zu beantworten, nein es ist nicht nötig einen eigenen MembershipProvider zu implementieren um eine eigene Authentifizierung in einem ASP.NET MVC-Projekt zu benutzen.
Chris
Ein MembershipProvider ist bei MVC wirklich die einfachste und sauberste Möglichkeit einer Authentifizierung.
Du musst nur an einzelne Controller / Actions die nötigen Rechte definieren und den Rest übernimmt komplett ASP. Du brauchst nirgends ein Redirect zu implementieren, da dies eben automatisch funktioniert.
- performance is a feature -
Microsoft MVP - @Website - @AzureStuttgart - github.com/BenjaminAbt - Sustainable Code
[...]oder muss ich tatsächlich so ein Membership Provider bauen?
Guck mal in ASP.NET MVC und Authentifizierung, da hatte ich das mal für ASP.NET MVC 1 gemacht. So schwierig ist das eigentlich nicht.
Hallo marco.b,
Was genau passt dir am vohandenen Membership Provider nicht?
Hi zusammen,
danke für die Antworten.
@dN!3l, dein Beispiel schau ich mir an, vielen Dank!
@Timur, mich nervt schlicht der Overhead. Was ich brauche, ist verhältnismäßig einfach. Passt E-Mail / Passwort? Dann darfst du alles. Ferner brauche ich keine Klasse, die mir versucht, Passwort-Reminder o.Ä. vorzukauen. Klar, muss ich nicht implementieren. Aber mir wird im Prinzip ein komplettes Authentifizierungs- und Autorisierungsframework aufgedrückt, für das ich keine Verwendung habe.
Wenn das aber in MVC3 Best Practises sind, dann versuche ich halt, damit zurecht zu kommen.
Du hast mehr "Overhead" mit Deiner Variante, da Du in jeder relevanten Action von Hand prüfen musst, ob der Anwender angemeldet ist und/oder Rechte hat.
Mit der Membership-Variante hast Du einmalig einen 20 Zeiler und kannst dann einfach an die jeweiligen Actions Dein [Roles=("")] Attribut hängen.
Ich glaube Du setzt Dir selbst die Hürde viel höher als sie wirklich ist.
- performance is a feature -
Microsoft MVP - @Website - @AzureStuttgart - github.com/BenjaminAbt - Sustainable Code
Hallo marco.b,
Du musst ja nicht alles benutzen was der MembershipProvider dir bietet! Du kannst ja auch gerne nur eine Teilmenge der Funktionen benutzen. Von daher verstehe ich deine Problematik nicht. Klar kannst du dir auch gerne eigene Methoden programmieren, aber die Frage ist ob es sich lohnt?