ASP .NET Core 2.1 - Como customizar o Identity 

 Neste artigo vou mostrar como podemos customizar o Identity em projetos criados com o template de projeto   da ASP .NET Core 2.1.

      

Como eu já escrevi neste artigo, um dos novos recursos do ASP.NET Core 2.1 é o Identity como biblioteca de interface do usuário. Esse novo recurso poupa você de todo o trabalho de adicionar e configurar o Identity para uma aplicação ASP.NET Core.

Vimos que o Identity agora é implementado usando o pacote nuget Microsoft.AspnetCore.Identity.UI e não temos mais nenhum código de controllers e views no seu projeto.

Tudo bem, mas e, se você quiser personalizar a interface do usuário ?

Sem problema, pois podemos fazer isso no Visual Studio usando os recursos do scaffolding.

Neste artigo veremos como fazer o Scaffold do Identity UI na ASP.NET Core 2.1 e aplicar uma personalização.

Recursos:

Abrindo o VS 2017 e criando um novo projeto teremos as seguinte operações :

  • Create New Project;
  • Visual C# -> Web -> ASP .NET Core Web Application;
  • Informe o nome AspnCore21_Identity
  • Clique em OK e a seguir selecione o template Web Application(Model-View-Controller), marque ASP .NET Core 2.1;
  • Clique em Change Authtentication e marque - Individual User Account e clique em OK;

Ao clicar no botão OK você obteve o projeto criado com a estrutura de arquivos mostrada na figura abaixo à esquerda:

Estrutura da solução criada usando A ASP .NET Core 2.1

Observando a estrutura do projeto veremos que o pacote nuget da identidade UI é incluído como referência e apenas o arquivo _ViewStart.cshtml esta presente na pasta Areas->Identity-> Pages para suportar a identidade. Não há controladores, modelos e visualizações presentes relacionados à identidade na estrutura da solução.

Observe que no arquivo Startup o método Configure() define o uso de arquivos estáticos e da autenticação:

Como personalizar o Identity

Vamos agora personalizar o Identity já implementado nesta aplicação.

Para isso clique com o botão direito do mouse sobre o projeto e clique em Add -> New Scaffolded Item;

Na janela Add Scaffold clique em Identity e a seguir clique em Add;

Será aberta caixa de diálogo - Add Identity - onde você pode ver uma lista de todos os arquivos responsáveis pela integração da identidade.

Você pode escolher um ou vários arquivos que deseja substituir.

Para exemplo deste artigo eu selecionei Account\Register.

Podemos também fornecer a classe de contexto de dados onde você pode escolher uma classe existente ou criar uma nova classe de contexto de dados.

Selecionei a classe de contexto padrão ApplicationDbContext criada no projeto.

Após clicar no botão Add, visualizando a estrutura do projeto na janela Solution Explorer teremos o resultado abaixo:

Veremos o arquivo Register.cshtml na pasta Account dentro da pasta Identity/Pages e todo o código relacionado será adicionado à solução.

Veremos também o arquivo Você também encontrará o arquivo ScaffoldingReadme.txt adicionado à raiz do projeto.

Este é apenas um arquivo de texto com instruções de configuração.

O arquivo IdentityHostingStartup.cs contém a configuração dos serviços relacionados à identidade.

Vamos agora abrir o arquivo Register.cshtml e alterá-lo fazendo a tradução dos textos para o português.

A seguir vamos abrir o Register.cshtml.cs e alterar os textos das validações do Model:

Podemos alterar também o código do arquivo_ LoginPartial.cshtml usado no arquivo _Layout.cshtml que é definido como o arquivo de leiaute no arquivo _ViewStart.cshtml dentro da pasta \Areas\Identity\Pages.

Após essas alterações executando o projeto e clicando no link Registrar :

Temos assim a nossa página Register.cshml personalizada para o português.

Dessa forma temos que a implementação da Identity como uma Razor Class Library facilitou basta a vida do desenvolvedor, sendo flexível a ponto de permitir a customização e o controle através do Scaffolder Identity como vimos neste artigo.

Na próxima parte do artigo veremos como criar um projeto usando a ferramenta de linha de comando NET CLI.

Pegue o projeto aqui: AspnCore21_Identity.zip

"Não pergunteis, pois, que haveis de comer, ou que haveis de beber, e não andeis inquietos."
"Porque as nações do mundo buscam todas essas coisas; mas vosso Pai sabe que precisais delas."
"Buscai antes o reino de Deus, e todas estas coisas vos serão acrescentadas."
Lucas 12:29-31

Veja os Destaques e novidades do SUPER DVD Visual Basic (sempre atualizado) : clique e confira !

Quer migrar para o VB .NET ?

Quer aprender C# ??

Quer aprender os conceitos da Programação Orientada a objetos ?

Quer aprender o gerar relatórios com o ReportViewer no VS 2013 ?

  Gostou ?   Compartilhe no Facebook   Compartilhe no Twitter

Referências:


José Carlos Macoratti