Где находятся страницы входа и регистрации в каркасном приложении AspNet Core? - PullRequest
0 голосов
/ 11 июня 2018

В 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>

Если пользователь не вошел в систему, тогда _LoginPartial включает<a> теги, которые указывают на страницы входа и регистрации:

<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>

Кажется, все это имеет смысл.Но я бы ожидал, что структура папок Области будет включать в себя папки Register и Login.Это не.Единственное, что я там нахожу, это _ViewStart.cshtml

Areas file structure

Я знаю, что код скаффолда работает. Когда я запускаю проект, ссылка Регистрация указывает на«/ Identity / Account / Register», и ссылка «Логин» указывает на «/ Identity / Account / Login».Нажав на ссылку «Регистрация», я получаю страницу регистрации с текстом «Создать новую учетную запись».

Но я не могу найти текст «Создать новую учетную запись» в любом месте проекта.

Может кто-нибудь сказать мне, что мне не хватает?

Ответы [ 4 ]

0 голосов
/ 05 августа 2019

Вы можете сгенерировать эти страницы с помощью этой команды:

dotnet aspnet-codegenerator identity -dc WebApplication1.Data.ApplicationDbContext

Убедитесь, что вы заменили свое собственное пространство имен + имя DbContext.Страницы генерируются здесь:

enter image description here


Если вы видите эту проблему:

Функция 'литерал по умолчанию'недоступен в C # 7.0.Пожалуйста, используйте языковую версию 7.1 или выше.

Вы можете исправить это, добавив это к вам .csproj и восстановив его:

<PackageReference Include="Microsoft.CodeAnalysis.Common" Version="3.2.0-beta3-final" />
<PackageReference Include="Microsoft.CodeAnalysis.CSharp" Version="3.2.0-beta3-final" />
<PackageReference Include="Microsoft.CodeAnalysis.CSharp.Workspaces" Version="3.2.0-beta3-final" />
0 голосов
/ 19 октября 2018

'Если вы хотите, чтобы весь код идентификации был в вашем приложении, чтобы вы могли изменить его так, как вы хотите, вы можете использовать новый каркас идентификации, чтобы добавить код идентификации в свое приложение.Весь идентификационный код скаффолдинга создается в папке области, специфичной для идентификатора, так что он остается хорошо отделенным от кода вашего приложения.1006 *

0 голосов
/ 03 апреля 2019

Немного опоздал на вечеринку, но после разочарования интерфейсом Identity я отказался от него.Создайте свои проекты без него.Мой совет (при использовании 2.1 или 2.2) создать свою учетную запись / управлять контроллерами и страницами MVC.Некоторые отладки startup.cs будут необходимы.Также отключите опцию компиляции представления публикации (т.е. views.dll).Возможно, у меня нет набора опций, но компилятор полностью игнорирует любые изменения в блоках сценария уровня страницы.

0 голосов
/ 11 июня 2018

Во время предварительного просмотра ядра 2.1 для asp.net было объявлено, что пользовательский интерфейс Identity будет перемещен в новую библиотеку классов Razor.https://blogs.msdn.microsoft.com/webdev/2018/03/02/aspnetcore-2-1-identity-ui/

По-прежнему возможно создать отдельные представления в вашем собственном проекте, если вы предпочитаете локальные представления: https://docs.microsoft.com/en-us/aspnet/core/security/authentication/scaffold-identity?view=aspnetcore-2.1&tabs=visual-studio

...