Olá! Vamos dar início a aula 1, onde implementaremos o AspNet Core Identity.
Trabalharemos com o projeto AspNet Core da clínica Vollmed, que foi baixado na etapa de preparação do ambiente. Atualmente, essa aplicação não possui um mecanismo de autenticação. Para solucionar isso, instalaremos o AspNet Core Identity.
Instalando o Pacote Necessário
Antes de prosseguir com a instalação, precisamos adicionar um pacote essencial ao projeto: Microsoft.AspNetCore.Identity.EntityFrameworkCore.
A instalação será feita no projeto MedVoll.Web. Para isso, clicamos com o botão direito do mouse do mouse sobre o projeto, selecionamos "Manage NuGet Packages" e, na barra de busca, colamos o nome do pacote Microsoft.AspNetCore.Identity.EntityFrameworkCore. Escolhemos a versão 9.0.0 e clicamos para instalar.
Modificando a Classe ApplicationDbContext
Com o pacote instalado, o próximo passo é modificar a classe de contexto da aplicação, localizada na pasta Data. Nessa pasta, encontramos o arquivo ApplicationDbContext.cs, que declara a classe ApplicationDbContext na linha 6.
public class ApplicationDbContext : DbContext
{
Atualmente, essa classe herda de DbContext, mas queremos que ela herde de IdentityDbContext.
public class ApplicationDbContext : IdentityDbContext
{
Essa mudança permitirá a inclusão automática de estruturas para gerenciar usuários e papéis, fundamentais para autenticação e autorização.
Ao fazer essa alteração na linha 6, pode ser que o Visual Studio não reconheça a classe IdentityDbContext, pois o namespace necessário ainda não foi adicionado. Para corrigir isso rapidamente, basta utilizar o atalho "Ctrl + ." e selecionar a opção "Using Microsoft.AspNetCore.Identity.EntityFrameworkCore".
Adicionando a Estrutura de Identidade
Agora, vamos adicionar a estrutura necessária para segurança, autenticação e autorização do projeto.
Para isso, clicamos com o botão direito do mouse sobre o nome do projeto, selecionamos "Add" e, no painel central, escolhemos "New Scaffolded Item". Na janela que se abre, selecionamos "Identity" tanto no menu lateral quanto no painel central e clicamos em "Add".
Em seguida, definimos quais views serão incluídas no projeto, como as telas de cadastro e login. Selecionamos "Account/Login" e "Account/Register". Na parte inferior da janela, escolhemos a classe de contexto ApplicationDbContext e clicamos novamente em "Add".
Com isso, a estrutura necessária foi gerada. Dentro do projeto, na pasta Areas, encontramos a subpasta Identity e, dentro dela, Pages. Em Pages, localizamos a pasta Account, que contém os arquivos Login.cshtml e Register.cshtml, responsáveis pelas telas de login e cadastro respectivamente.
Criando a Migração para o Banco de Dados
Agora, precisamos refletir essa nova estrutura no banco de dados, criando tabelas para usuários, papéis e outras informações relacionadas. Para isso, vamos gerar uma Migration (migração).
No Visual Studio, abrimos o terminal acessando View> Terminal" e navegamos até a pasta do projeto MedVoll.Web com o comando:
Em seguida, executamos o seguinte comando para criar a migração:
dotnet ef migrations add CreateIdentitySchema
Neste comando, CreateIdentitySchema corresponde ao nome da migração.
Após pressionar "Enter", a migração será gerada e poderá ser encontrada na pasta Data, dentro da subpasta Migrations, no arquivo CreateIdentitySchema.cs. Esse arquivo contém todas as instruções necessárias para adicionar novas tabelas ao nosso banco de dados.
Aplicando a Migração ao Banco de Dados
Para aplicar a migração, abrimos novamente o terminal, navegamos até a pasta MedVoll.Web com cd MedVoll.Web e executamos o seguinte comando:
dotnet ef database update
Esse comando atualizará o banco de dados com as alterações pendentes da migração.
Após a aplicação, podemos localizar o banco de dados atualizado no painel à direita, no arquivo vollmed.db. Para visualizá-lo, clicamos com o botão direito do mouse sobre o arquivo, selecionamos "Abrir com" e escolhemos o aplicativo DB Browser for SQLite, que foi instalado durante a preparação do ambiente.
Ao abrir o banco de dados, podemos visualizar as tabelas criadas pela migração, incluindo AspNetUsers e AspNetRoles, responsáveis pelo gerenciamento de usuários e papéis.
Conclusão e Próximos Passos
O AspNet Core Identity é uma solução integrada para gerenciar autenticação, registro de pessoas usuárias e permissões, oferecendo suporte à extensibilidade. Ao instalá-lo, adicionamos ao projeto uma estrutura que servirá de base para o curso. Com apenas alguns passos, configuramos as tabelas de pessoas usuárias e papéis e implementamos as telas de login e cadastro.
No próximo vídeo, aprenderemos a criar um usuário de teste para validar a funcionalidade do AspNet Core Identity.