Идентификация в ASP.Net Core 2.1 <- Настройка AccountController

89

Я установил, ASP.NET Core 2.1но, хотя я создал новый ASP.NET Core Web Applicationс ASP.NET Core 2.1помощью Individual User AccountsStore user accounts in-appЯ не могу найти AccountController или Views.

Я все еще могу зарегистрироваться и войти в систему без проблем, но я не могу найти для этого код, он присутствовал в 2.0.

введите описание изображения здесь

Огглас
источник
Я задал здесь вопрос, если вы хотите ответить: stackoverflow.com/questions/51728881/… . Я борюсь с выходом из системы в приложении .NET Core 2.1 Identity Server 4. +1.
w0051977 09

Ответы:

75

Одним из изменений в версии 2.1 стали библиотеки классов Razor, и идентификатор по умолчанию находится в одной из них в отдельных шаблонах аутентификации. Если вы хотите, чтобы код был в вашем приложении, чтобы вы могли его настроить, вы можете создать его с помощью Visual Studio или инструмента глобального каркаса. См. Это руководство о том, как это сделать.

Marcusturewicz
источник
21
Мне удалось создать файлы cshtml, а не контроллеры. Руководство не упомянуло об этом, есть идеи, как создать accountController?
user1085907 09
7
Ах, мой плохой .. это как дизайнер в
подфайле
16
почему это улучшение ? Это делает вещи излишне запутанными.
лян
94

ASP.NET Core 2.1 представила новую функцию, называемую библиотеками классов Razor, которая позволяет создавать представления и страницы как часть многоразовой библиотеки. ASP.NET Core Identity был перемещен в такой RCL. Вы можете переопределить его в своем проекте:

  1. В обозревателе решений щелкните проект правой кнопкой мыши> Добавить > Новый шаблонный элемент .
  2. На левой панели диалогового окна « Добавить шаблон » выберите « Удостоверение» > ДОБАВИТЬ» .
  3. в диалоговом окне ADD Identity выберите файлы, которые вы хотите переопределить.
    1. При необходимости выберите макет
    2. Выберите или создайте класс контекста данных .
  4. Нажмите ДОБАВИТЬ .

Для получения дополнительной информации посетите документацию .

Ксивис
источник
1
Вам нужно щелкнуть правой кнопкой мыши по проекту, а не по решению, чтобы получить 'New Scaffolded Item'. Спасибо за внимание по этому
поводу
2
Это по-прежнему не вводит поле «Контроллер учетной записи», например, я добавил настраиваемые поля, как мне сказать, что они мне нужны в методе регистрации.
rogue39nin
Эй, а что, если я захочу перезаписать контроллер вместо страницы бритвы? Я использую SPA, поэтому не уверен, смогу ли я переопределить контроллер
Роберт Тирта
@ rogue39nin Да, AccountController нет, позвольте мне объяснить. Все, что у вас есть, находится в Areaпапке, которая является библиотекой классов Razor. Так как это библиотека классов бритвы, соглашение об именах внутри этой папки такое же, как у библиотеки классов Razor и маршрутизации, см. Эту ссылку learnrazorpages.com/razor-pages/routing#areas Если вы хотите узнать, где находится логика входа , перейдите кAreas/Identity/Pages/Account/Login.cshtml.cs
Вибисоно Индраван
7

Мое решение - создать проект с .net core 2.0, а затем обновить структуру до 2.1 и всю зависимость до последней версии.

Ван
источник
2

Насколько мне известно, код AccountController был перемещен на страницы Razor (и их код позади) и лучше всего работает с использованием значений по умолчанию, поэтому для настройки кода вы можете Scaffold (т.е. создавать файлы в нужном месте) из совершенно новой сети Core 2.1, щелкнув правой кнопкой мыши проект в Visual Studio 2017 и выбрав «Добавить» => «Новый шаблонный элемент» => «Удостоверение», чтобы открыть диалоговое окно «Выбор». Выберите желаемые страницы и готово. Просто измените нужные страницы и скопируйте в то же место в проекте с включенной идентификацией, поскольку эти новые страницы автоматически отменяют значения по умолчанию. Это новый способ настроить аутентификацию / авторизацию с помощью Identity, не уверен, считают ли многие такой прогресс!

Лэнс Паркингтон
источник