No VS 2017, criei um novo aplicativo Web ASP.NET Core. Na segunda página do assistente, escolhi Aplicativo da Web e, para Autenticação, escolhi "Contas de Usuário Individuais".
Agora, estou tentando encontrar as páginas associadas a / Account / Register e / Account / Login .
_Layout.cshtml traz _LoginPartial.cshtml, da mesma forma que no MVC clássico:
<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>
Se o usuário não estiver conectado, o _LoginPartial incluirá <a>
tags que apontam para as páginas de login e registro:
<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>
Tudo isso parece fazer sentido. Mas eu esperava que a estrutura de pastas do Areas incluísse as pastas Register e Login. Isso não. A única coisa que encontro lá é _ViewStart.cshtml
Sei que o código do andaime funciona. Quando executo o projeto, o link Register aponta para "/ Identity / Account / Register" e o link Login aponta para "/ Identity / Account / Login". Ao clicar no link Registrar, recebo uma página de registro que inclui o texto "Criar uma nova conta".
Mas não consigo encontrar o texto "Criar uma nova conta" em qualquer lugar do projeto.
Alguém pode me dizer o que estou perdendo?
fonte
Você pode fazer isso no Visual Studio, clique com o botão direito do mouse em seu projeto e selecione Adicionar-> Novo item de andaime
Em seguida, selecione Identidade e clique em Adicionar
Agora selecione as páginas que você deseja substituir. Lista suspensa Data Context: e seu Namespace e Contexto devem ser preenchidos previamente para você.
Por fim, clique em Adicionar. Se você já possui arquivos de substituição lá (ou seja, do modelo), isso avisa sobre a substituição deles.
fonte
Clique com o botão direito do mouse no projeto, selecione
Add -> New Scaffold Item
, na caixa de diálogo, selecione Identidade no painel esquerdo.Você também pode gerar estas páginas usando este comando:
Substitua por seu próprio namespace + nome DbContext. As páginas são geradas aqui:
Se você vir esse problema:
Você pode corrigi-lo adicionando isso a você
.csproj
e reconstruindo-o:fonte
WebApplication1.Data.ApplicationDbContext
pelo namespace e nome de arquivo corretos?dotnet aspnet-codegenerator
. Talvez este seja o problema?'Se você quiser que todo o código de identidade esteja no seu aplicativo para poder alterá-lo da maneira que desejar, use o novo andaime de identidade para adicionar o código de identidade ao seu aplicativo. Todo o código de identidade do andaime é gerado em uma pasta de área específica da identidade, para que fique bem separado do código do aplicativo. '
https://blogs.msdn.microsoft.com/webdev/2018/02/02/asp-net-core-2-1-roadmap/#identity
Funciona muito agradável e fácil para mim.
fonte
Um pouco tarde para a festa, mas depois de frustrações com a interface do usuário da identidade, desisti dela. Crie seus projetos sem ele. Meu conselho é (ao usar o 2.1 ou 2.2) criar sua própria conta / gerenciar controladores e páginas mvc. Alguma depuração startup.cs será necessária. Desative também a opção de compilação de exibição de publicação (ou seja, views.dll). Talvez eu não tenha uma opção definida, mas o compilador ignora completamente qualquer alteração nos blocos de script no nível da página.
fonte