Blazor - Gerenciamento de usuários com Identity
    Neste artigo veremos gerenciar usuários usando o Identity no Blazor (,NET 8)

Ao criar uma aplicação, uma das primeiras preocupações é como gerenciar os usuários e suas funções e a segurança em toda a aplicação. A essência básica do requisito é sempre a mesma: registrar-se, fazer login, autorizar usuários, papíes ou funções e assim por diante.




Portanto, para ajudar a facilitar o processo de gerenciamento de usuários, a Microsoft apresenta uma implementação padrão de Gerenciamento de usuários através do Microsoft Identity. Além disso, possui interface de usuário integrada para oferecer suporte a várias funcionalidades do usuário.

A ASP.NET Core Identity é um framework de autenticação e autorização para aplicativos web desenvolvidos em ASP.NET Core. Ele fornece recursos essenciais para lidar com a autenticação de usuários, como gerenciamento de senhas, registro de usuários, login, recuperação de senha, bloqueio de contas, entre outros.

Assim o Identity esta pronto para ser usado, e, ele vem com alguns recursos básicos; entretanto em cenários reais, podemos precisar de muito mais do que o que o Identity oferece por padrão. Isso inclui adicionar imagens de perfil, ter uma interface de usuário para gerenciamento de funções, lógica personalizada para fazer login do usuário e muito mais.

Assim veremos o que temos de novo com o Blazor no .NET 8 usando o Identity.

Criando o projeto Blazor

Abra o VS 2022 e selecione o template Blazor Web App informando o nome BlazorIdentity e clique em Create;

A seguir defina as seguintes configurações adicionais:

Clique no botão Create para criar o projeto com a autenticação definida usando o Identity.

Este é o resultado da solução criada pelo Visual Studio. Como você pode ver, no projeto do servidor, na pasta Pages existe uma pasta Account com todas as páginas

Antes de prosseguir, vamos atualizar o banco de dados. Assim que criamos nosso projeto, o Visual Studio já fez o seguinte para nós.

- Adicionou migrações para a tabela de identidades (na pasta Data)
- Gerou um contexto de banco de dados padrão (ApplicationDbContext)
- Registrou o contexto do banco de dados
- Adicionou uma string de conexão padrão a appsettings.json (um banco de dados local com o nome do projeto e GUID)

{
  "ConnectionStrings": {
    "DefaultConnection": "Server=(localdb)\\mssqllocaldb;Database=aspnet-BlazorIdentity-6e1b3cd5-9b9e-4225-82a3-a599e8440005;Trusted_Connection=True;MultipleActiveResultSets=true"
  },
...

Já que está tudo configurado para nós, vamos aplicar as migrações e atualizar o banco de dados. Antes eu vou alterar a string de conexão e o nome do banco de dados :

"ConnectionStrings": {
  "DefaultConnection": "Data Source=desktop-dk57unp\\sqlexpress;
                        Initial Catalog=BlzIdenetityDB;Integrated Security=True;
                        TrustServerCertificate=True;"
},

Agora vamos abrir a janela do console do gerenciador de pacotes e estando na pasta do projeto vamos digitar o seguinte comando:

update-database

Este comando irá criar o banco de dados e as tabelas do Identity e assim poderemos acessar a aplicação executando o projeto:

Observe que temos as seguintes opções no menu:

- Register
- Login

Assim podemos registrar um usuário e a seguir efetuar o login em nossa aplicação.

Após registrar o usuário vamos clicar no link para confirmar o registro:

E a seguir fazer o login com o usuário cadastrado.

Observe que podemos gerenciar a conta do usuário realizando operações com o Perfil, email, senha e implementar a autenticação em duas etapas e obter os dados pessoais.

Tudo isso de forma automática usando os recursos do Identity no Blazor no .NET 8

E estamos conversados ...

"Falou-lhes, pois, Jesus outra vez, dizendo: Eu sou a luz do mundo; quem me segue não andará em trevas, mas terá a luz da vida."
João 8:12

Referências:


José Carlos Macoratti