Является ли FormsAuthentication устаревшим? [закрыто]

46

Я создаю веб-сайт с использованием ASP.NET MVC 5. Выпустила ли Microsoft какую-либо технологию для замены FormsAuthentication или они все еще рекомендуют аутентифицировать пользователя с помощью FormsAuthentication для MVC 5?

sean717
источник
3
Определите «ОК» и «Устаревший» и объясните «Не нравится».
Роберт Харви
24
Почему этот вопрос закрыт !? OP спрашивает, устарела ли FormsAuthentication в MVC 5 и есть ли другая технология, которая заменяет ее. Это не основанный на мнении вопрос, такой как «Что вы думаете об использовании FormsAuthentication в MVC 5».
Tony_Henrich
3
@Tony_Henrich, да, я не понимаю, почему это закрыто. К счастью, перед закрытием Роуэн дала полезный ответ. Частично основываясь на его ответе, я все еще использовал FormsAuthentication в своем проекте MVC5.
sean717
3
Я не понимаю, почему это было закрыто? Разве этот вопрос не является целью этого обмена стека, а не задает такой вопрос в stackoverflow?
contactmatt
3
Я не понимаю, почему этот вопрос был закрыт? Мой проект мигрирует с веб-форм asp.net 4.0 с аутентификацией формы на asp.net 4.5 MVC5, и я исследую наилучший подход с текущим кодом. Пожалуйста, не позволяйте StackExchange модерировать хуже, чем в Википедии.
JoshYates1980

Ответы:

50

Да. Проверка подлинности Forms устарела в MVC 5 и более поздних версиях.

По крайней мере, это короткий ответ.

Длинный ответ заключается в том, что традиционная FormsAuthentication до MVC 5 все еще в порядке . Однако он постепенно сокращается в пользу альтернативных подходов, таких как ASP.NET Identity .

В Visual Studio 2013 параметры аутентификации, предоставляемые для приложения MVC 5, следующие:

Параметры аутентификации VS2013

В этом случае индивидуальные учетные записи пользователей относятся к ASP.NET Identity .

Согласно Microsoft, прежнее членство в ASP.NET было заменено удостоверением ASP.NET,

[...] образец приложения будет настроен на использование удостоверения ASP.NET ( ранее известного как членство в ASP.NET )

(Акцент мой)

Microsoft также заявляет

Новая система членства основана на OWIN, а не на модуле проверки подлинности форм ASP.NET.

Таким образом, Identity точно не заменила FormsAuthentication, а заменила систему членства, которая использовала FormsAuthentication. И это тоже хорошо, потому что, согласно вопросу, который я задал в 2013 году, членство довольно запутанно .

Тип FormsAuthentication все еще существует, хотя . По словам Microsoft ,

ASP.NET также имеет поддержку проверки подлинности на основе форм с помощью FormsAuthenticationModule, который, однако, может поддерживать только приложения, размещенные на ASP.NET, и не поддерживает претензии. Вот примерный список сравнения характеристик: Сравнение функций

Поэтому, если вы все еще хотите использовать FormsAuthentication, ознакомьтесь с разделом Общие сведения об аутентификации OWIN Forms в MVC 5 .

Поэтому Microsoft рекомендует вам использовать ASP.NET Identity. Вы не должны, конечно. Вы можете просто выбрать No Authentication, и проект не будет ничего реализовывать для вас. Тогда вам решать, что вам нужно для членства / входа в систему .

Роуэн Фриман
источник
5
Ни в ОП, ни в этом ответе не упоминается проверка подлинности по пользовательской форме. В своих приложениях я не хочу и не использую встроенные элементы управления членством и таблицы SQL Server, а вместо этого аутентифицирую пользователя, используя мой код и пользовательскую таблицу. Затем, после проверки подлинности, я использую FormsAuthentication для создания и настройки файла cookie авторизации. Я не использую ASP.NET Identity, но надеюсь, что он также поддерживает этот сценарий.
Tony_Henrich
@Tony_Henrich, "аутентифицируйте пользователя, используя мой код и пользовательскую таблицу. Затем, после аутентификации, я использую FormsAuthentication для создания и настройки файла cookie для аутентификации" Это именно то, что я в итоге и делаю. Мне действительно не нравятся элементы управления членством ASP.NET и его таблицы SQL Server. Что касается системы «членства в ASP.NET», я знаю, что она определенно устарела и ее следует прекратить использовать (поскольку на самом деле это было много лет назад)
sean717
Хороший проект с открытым исходным кодом, который использует MVC5 и пользовательскую проверку подлинности формы: github.com/YodasMyDad/mvcforum
JoshYates1980