В VS 2017 я создал новое веб-приложение ASP.NET Core. На второй странице мастера я выбрал веб-приложение, а для аутентификации выбрал «Учетные записи отдельных пользователей».
Теперь я пытаюсь найти страницы, связанные с / Account / Register и / Account / Login .
_Layout.cshtml включает _LoginPartial.cshtml, как и в классическом MVC:
<div class="navbar-collapse collapse">
<ul class="nav navbar-nav">
<li><a asp-page="/Index">Home</a></li>
<li><a asp-page="/About">About</a></li>
<li><a asp-page="/Contact">Contact</a></li>
</ul>
<partial name="_LoginPartial" />
</div>
Если пользователь не вошел <a>
в систему, _LoginPartial включает теги, указывающие на страницы входа и регистрации:
<ul class="nav navbar-nav navbar-right">
<li><a asp-area="Identity" asp-page="/Account/Register">Register</a></li>
<li><a asp-area="Identity" asp-page="/Account/Login">Login</a></li>
</ul>
Кажется, все это имеет смысл. Но я ожидал, что структура папок «Области» будет включать папки «Регистрация» и «Вход». Это не. Единственное, что я нашел, это _ViewStart.cshtml
Я знаю, что шаблонный код работает. Когда я запускаю проект, ссылка «Регистрация» указывает на «/ Identity / Account / Register», а ссылка для входа указывает на «/ Identity / Account / Login». При нажатии на ссылку «Регистрация» открывается страница регистрации с текстом «Создать новую учетную запись».
Но я не могу найти текст «Создать новую учетную запись» в проекте.
Может кто-нибудь сказать мне, что мне не хватает?
источник
Вы можете сделать это из Visual Studio, щелкните правой кнопкой мыши свой проект и выберите Добавить-> Новый шаблонный элемент.
Затем выберите Identity и нажмите Add.
Теперь выберите страницы, которые хотите переопределить. Выпадающий класс контекста данных: ваше пространство имен и контекст должны быть предварительно заполнены за вас.
Наконец, нажмите «Добавить». Если у вас уже есть файлы переопределения (например, из шаблона), это предупредит об их перезаписи.
источник
Щелкните правой кнопкой мыши проект, выберите
Add -> New Scaffold Item
, в диалоговом окне выберите " Идентификация" на левой панели.Вы также можете сгенерировать эти страницы с помощью этой команды:
Убедитесь, что вы заменили свое собственное пространство имен + имя DbContext. Здесь создаются страницы:
Если вы видите эту проблему:
Возможно, вы сможете исправить это, добавив это к себе
.csproj
и перестроив:источник
WebApplication1.Data.ApplicationDbContext
правильное пространство имен и имя файла?dotnet aspnet-codegenerator
. Может в этом проблема?'Если вы хотите, чтобы в вашем приложении был весь идентификационный код, чтобы вы могли изменить его, как хотите, вы можете использовать новый шаблон идентификации, чтобы добавить идентификационный код в свое приложение. Весь шаблонный идентификационный код генерируется в папке, специфичной для идентификации, так что он остается четко отделенным от кода вашего приложения ».
https://blogs.msdn.microsoft.com/webdev/2018/02/02/asp-net-core-2-1-roadmap/#identity
Для меня это работает довольно легко и просто.
источник
Немного поздно на вечеринку, но после разочарования в Identity UI я отказался от него. Создавайте свои проекты без него. Мой совет (при использовании 2.1 или 2.2) создать свою учетную запись / управлять контроллерами и страницами mvc. Потребуется некоторая отладка startup.cs. Также отключите параметр компиляции представления публикации (например, views.dll). Возможно, у меня нет набора параметров, но компилятор полностью игнорирует любые изменения в блоках сценария на уровне страницы.
источник