Шаблоны аутентификации на основе MVC в ASP.NET Core 2.0 - PullRequest
0 голосов
/ 19 марта 2019

При создании нового веб-проекта ASP.Net Core в ASP.Net Core 2.0 и выборе опции аутентификации «Индивидуальная учетная запись», аутентификация просматривает / контроллеры, где первоначально реализовано использование ASP.Net MVC.Похоже, что недавно они были обновлены для использования страниц Razor.Мои вопросы ... есть ли способ вернуть новый шаблон проекта для использования MVC вместо страниц Razor или, по крайней мере, есть ли способ узнать, какой код используется для создания шаблона MVC?

1 Ответ

0 голосов
/ 19 марта 2019

Просто нет.Идентичность теперь поставляется с библиотекой классов 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.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...