Czy FormsAuthentication jest przestarzały? [Zamknięte]

46

Tworzę stronę internetową przy użyciu ASP.NET MVC 5. Czy Microsoft wydał jakąkolwiek technologię zastępującą FormsAuthentication, czy nadal zaleca uwierzytelnianie użytkownika za pomocą FormsAuthentication dla MVC 5?

sean717
źródło
3
Zdefiniuj „OK” i „Przestarzałe” i wyjaśnij „Nie lubię”.
Robert Harvey
24
Dlaczego to pytanie jest zamknięte !? OP pyta, czy FormsAuthentication jest przestarzały w MVC 5 i czy istnieje inna technologia, która go zastępuje. To nie jest pytanie oparte na opiniach, takie jak „Co sądzisz o korzystaniu z FormsAuthentication w MVC 5”.
Tony_Henrich
3
@ Tony_Henrich, tak, nie rozumiem, dlaczego to jest zamknięte. Na szczęście Rowan udzieliła użytecznej odpowiedzi przed zamknięciem. Częściowo w oparciu o jego odpowiedź nadal korzystałem z FormsAuthentication w moim projekcie MVC5.
sean717
3
Nie rozumiem, dlaczego to zostało zamknięte? Czy to pytanie nie jest celem wymiany stosów i nie zadaje tego rodzaju pytań w przepływie stosów?
contactmatt
3
Nie rozumiem, dlaczego to pytanie zostało zamknięte? Mój projekt migruje z formularzy internetowych asp.net 4.0 z uwierzytelnianiem formularzy do asp.net 4.5 MVC5 i szukam najlepszego podejścia z obecnym kodem. Nie pozwól, aby StackExchange moderowało gorzej niż Wikipedia.
JoshYates1980

Odpowiedzi:

50

Tak. Uwierzytelnianie formularzy jest przestarzałe w MVC 5 i nowszych.

Przynajmniej taka krótka odpowiedź.

Długa odpowiedź jest taka, że tradycyjne uwierzytelnianie formularzy wcześniejszych niż MVC 5 jest nadal w użyciu . Jest jednak stopniowo wycofywany na korzyść alternatywnych podejść, takich jak ASP.NET Identity .

W Visual Studio 2013 dostępne są następujące opcje uwierzytelnienia i aplikacja MVC 5:

Opcje uwierzytelniania VS2013

W takim przypadku indywidualne konta użytkowników odnoszą się do tożsamości ASP.NET .

Według Microsoft dawne członkostwo ASP.NET zostało zastąpione przez ASP.NET Identity,

[...] przykładowa aplikacja zostanie skonfigurowana do używania tożsamości ASP.NET ( wcześniej znanej jako członkostwo ASP.NET )

(Moje podkreślenie)

Microsoft również stwierdza

Nowy system członkostwa oparty jest na OWIN, a nie na module uwierzytelniania formularzy ASP.NET.

Tak więc tożsamość nie zastąpiła dokładnie FormsAuthentication, a raczej zastąpiła system członkostwa, który korzystał z FormsAuthentication. Dobrze, że zgodnie z pytaniem, które zadałem w 2013 r., Członkostwo jest raczej mylące .

Jednak nadal istnieje pewien rodzaj uwierzytelnienia formularza . Według Microsoftu ,

Program ASP.NET obsługuje również uwierzytelnianie formularzy za pośrednictwem modułu FormsAuthenticationModule, który jednak może obsługiwać tylko aplikacje hostowane w programie ASP.NET i nie obsługuje obsługi roszczeń. Oto przybliżona lista porównawcza funkcji: Porównanie funkcji

Jeśli więc nadal chcesz korzystać z uwierzytelniania formularzy , zapoznaj się z artykułem Opis uwierzytelniania formularzy OWIN w MVC 5 .

Microsoft zachęca więc do korzystania z tożsamości ASP.NET. Oczywiście nie musisz. Możesz po prostu wybrać opcję Brak uwierzytelnienia, a projekt nie zaimplementuje niczego. To od Ciebie zależy, czy spełnisz swoje wymagania dotyczące członkostwa / logowania .

Rowan Freeman
źródło
5
Ani OP, ani ta odpowiedź nie wspominają o uwierzytelnianiu formularzy niestandardowych. W moich aplikacjach nie chcę i nie używam wbudowanych formantów członkostwa i tabel programu SQL Server, ale zamiast tego uwierzytelniam użytkownika za pomocą mojego kodu i tabeli użytkowników. Następnie po uwierzytelnieniu używam FormsAuthentication do utworzenia i skonfigurowania pliku cookie uwierzytelniania. Nie używam tożsamości ASP.NET, ale mam nadzieję, że obsługuje ona również ten scenariusz.
Tony_Henrich
@ Tony_Henrich, „uwierzytelnij użytkownika za pomocą mojego kodu i tabeli użytkowników. Następnie po uwierzytelnieniu używam FormsAuthentication do utworzenia i skonfigurowania pliku cookie uwierzytelniania”. Właśnie to robię. Naprawdę nie lubię kontroli członkostwa w ASP.NET i jej tabelach programu SQL Server. W przypadku systemu „członkostwa ASP.NET” wiem, że jest on zdecydowanie przestarzały i należy go przestać używać (tak naprawdę wiele lat temu)
sean717
Dobry projekt open source wykorzystujący MVC5 i niestandardowe uwierzytelnianie formularzy: github.com/YodasMyDad/mvcforum
JoshYates1980