Просто нет.Идентичность теперь поставляется с библиотекой классов Razor, содержащей пользовательский интерфейс по умолчанию, который, как вы заметили, основан на Razor Pages.Если вы хотите установить MVC в старом стиле, вам нужно создать его самостоятельно.Вы можете создать страницы UI по умолчанию в своем проекте и затем обратиться к ним, чтобы переместить код в контроллеры / представления.Затем, когда вы закончите с этим, удалите страницы пользовательского интерфейса по умолчанию в вашем проекте и вообще отключите пользовательский интерфейс по умолчанию, используя AddIdentity<TUser, TRole>
вместо AddDefaultIdentity<TUser>
(который добавляет скрытый пользовательский интерфейс по умолчанию).
FWIW, я был абсолютно против Razor Pages, пока не попытался сделать то же самое, что вы собираетесь предпринять.Переместив весь код в контроллеры, я начал вспоминать, насколько это было на самом деле.В аутентификации задействовано столько стандартного кода: вход, выход, регистрация, сброс пароля, 2FA, сторонний вход и т. Д. В результате вы получаете чудовищные контроллеры с сотнями или даже тысячами строк кода.Даже если вы попытаетесь разбить его на множество разных контроллеров, это только ухудшит ситуацию.Короче говоря, Razor Pages на самом деле хорошо работает для чего-то подобного.Он сохраняет каждую функциональность в отдельности, поэтому вы точно знаете, куда вам нужно перейти, чтобы отредактировать материал.Я бы посоветовал вам сначала попробовать и посмотреть, как это работает для вас.
Кроме того, одной из ваших основных проблем может быть стиль маршрутизации в Web Forms с Razor Pages, гдеу вас путь становится URL, и если вы похожи на меня, это, вероятно, оскорбляет ваши чувства.Это действительно может быть изменено, хотя это не документировано.Вы можете просто указать любой маршрут, который вы хотели бы видеть на странице, с помощью директивы @page
.Например, вы можете сделать что-то вроде следующего в Login.cshtml
:
@page "/signin"
Затем вы можете получить доступ к странице через /signin
вместо /Identity/Account/Login.cshtml
.