Ist FormsAuthentication veraltet? [geschlossen]

46

Ich erstelle eine Website mit ASP.NET MVC 5. Hat Microsoft eine Technologie veröffentlicht, die FormsAuthentication ersetzt, oder wird weiterhin empfohlen, den Benutzer mit FormsAuthentication für MVC 5 zu authentifizieren?

sean717
quelle
3
Definieren Sie "OK" und "Veraltet" und erklären Sie "Gefällt mir nicht".
Robert Harvey
24
Warum ist diese Frage geschlossen? Das OP fragt, ob FormsAuthentication in MVC 5 veraltet ist und ob es eine andere Technologie gibt, die es ersetzt. Dies ist keine meinungsbasierte Frage wie "Was halten Sie von der Verwendung von FormsAuthentication in MVC 5".
Tony_Henrich
3
@ Tony_Henrich, ja, ich verstehe nicht, warum dies geschlossen ist. Glücklicherweise gab Rowan vor der Schließung eine nützliche Antwort. Teilweise basierend auf seiner Antwort habe ich in meinem MVC5-Projekt immer noch FormsAuthentication verwendet.
Sean717
3
Ich verstehe nicht, warum dies geschlossen war? Ist diese Frage nicht der Zweck dieses Stapelaustauschs, und diese Art von Frage nicht im Stapelüberlauf zu stellen?
Kontaktmatt
3
Ich verstehe nicht, warum diese Frage geschlossen wurde? Mein Projekt migriert von asp.net 4.0-Webforms mit Formularauthentifizierung zu asp.net 4.5 MVC5 und ich suche nach dem besten Ansatz mit dem aktuellen Code. Bitte erlauben Sie nicht, dass StackExchange schlechter als Wikipedia moderiert.
JoshYates1980

Antworten:

50

Ja. FormsAuthentication ist in MVC 5 und höher veraltet.

Zumindest ist das die kurze Antwort.

Die lange Antwort lautet, dass die traditionelle FormsAuthentication vor MVC 5 weiterhin verwendet werden kann . Es wird jedoch zugunsten alternativer Ansätze wie ASP.NET Identity auslaufen .

In Visual Studio 2013 werden die folgenden Authentifizierungsoptionen für und die MVC 5-Anwendung bereitgestellt:

VS2013-Authentifizierungsoptionen

In diesem Fall beziehen sich einzelne Benutzerkonten auf die ASP.NET-Identität .

Laut Microsoft wurde die frühere ASP.NET-Mitgliedschaft durch ASP.NET-Identität ersetzt.

[...] Die Beispielanwendung wird für die Verwendung der ASP.NET-Identität ( früher als ASP.NET-Mitgliedschaft bezeichnet ) konfiguriert.

(Betonung meiner)

Microsoft auch angeben

Das neue Mitgliedschaftssystem basiert auf OWIN und nicht auf dem ASP.NET Forms Authentication-Modul.

Identity hat FormsAuthentication also nicht wirklich ersetzt, sondern vielmehr das Mitgliedschaftssystem, das FormsAuthentication verwendet. Das ist auch gut so, denn gemäß einer Frage, die ich 2013 gestellt habe, ist die Mitgliedschaft ziemlich verwirrend .

Eine Art von FormsAuthentication ist jedoch noch vorhanden . Laut Microsoft ,

ASP.NET bietet auch eine Formularauthentifizierungsunterstützung über das FormsAuthenticationModule, das jedoch nur auf ASP.NET gehostete Anwendungen unterstützt und keine Anspruchsunterstützung bietet. Hier ist eine grobe Feature-Vergleichsliste: Funktionsvergleich

Wenn Sie weiterhin FormsAuthentication verwenden möchten, lesen Sie Grundlegendes zur OWIN-Formularauthentifizierung in MVC 5 .

Microsoft empfiehlt daher die Verwendung von ASP.NET Identity. Das musst du natürlich nicht. Sie können einfach Keine Authentifizierung auswählen und das Projekt implementiert nichts für Sie. Es liegt dann an Ihnen, Ihre Mitgliedschafts- / Login-Anforderungen zu erfüllen .

Rowan Freeman
quelle
5
Weder das OP noch diese Antwort erwähnen eine benutzerdefinierte Formularauthentifizierung. In meinen Apps möchte und verwende ich keine integrierten Mitgliedschaftssteuerelemente und SQL Server-Tabellen, sondern authentifiziere einen Benutzer mithilfe meines Codes und meiner Benutzertabelle. Nach der Authentifizierung verwende ich FormsAuthentication zum Erstellen und Einrichten des Authentifizierungscookies. Ich verwende ASP.NET Identity nicht, hoffe aber, dass es auch dieses Szenario unterstützt.
Tony_Henrich
@Tony_Henrich, "Authentifizieren Sie einen Benutzer mithilfe meines Codes und meiner Benutzertabelle. Nach der Authentifizierung erstelle und richte ich mithilfe von FormsAuthentication den Authentifizierungs-Cookie ein." Genau das mache ich dann. Ich mag keine ASP.NET-Mitgliedschaftssteuerelemente und deren SQL Server-Tabellen. Für das "ASP.NET-Mitgliedschaft" -System weiß ich, dass es definitiv veraltet ist und nicht mehr verwendet werden sollte (eigentlich seit vielen Jahren)
sean717
Ein gutes Open-Source-Projekt, das MVC5 und benutzerdefinierte Formularauthentifizierung verwendet: github.com/YodasMyDad/mvcforum
JoshYates1980