.NET

23 nov, 2017

ASPNET Core 2 – Autenticação de usuário no MongoDB

Publicidade

Uma boa alternativa para quem não pretende utilizar o SQLServer para montar projetos, é utilizar um banco NoSQL. Neste caso, vamos utilizar o MongoDB para sair um pouco do tradicional.

MongoDB

MongoDB nada mais é do que um banco de dados orientado a documentos classificado como NoSQL, não relacional.

Hospedagem

Você pode utilizar o mLab. Ele possui uma versão free e dá poder de escolha sobre qual nuvem utilizar. Microsoft Azure, Amazon Web Services, etc.

Configuração

  • Crie um ASP.NET Web Application utilizando ASPNET CORE 2;
  • Um detalhe importante: na configuração do projeto, opte pela configuração Change Authentication para Individual User Accounts, como exibido na imagem a seguir:

Statup.cs

Configure então o arquivo conforme o exemplo a seguir:

public void ConfigureServices(IServiceCollection services)  
{
        services.AddIdentityWithMongoStores(Configuration.GetConnectionString("DefaultConnectionMongoDB"))
        .AddDefaultTokenProviders();

        // Add application services.
        services.AddTransient<IEmailSender, EmailSender>();

        services.AddMvc();
}

ASPNET Core 1 x ASPNET Core 2

Essa conexão com o MongoDB, existe uma biblioteca no NuGet que funciona muito bem para o ASPNET Core 1 (Microsoft.AspNetCore.Identity.MongoDB), mas para o 2 não funciona.

Então eu fiz a migração do projeto (nada complexo) e deixei funcionando para o ASPNET Core 2. Você pode fazer baixar o projeto do git aqui.

Como o projeto começa com o nome Microsoft, não tenho permissão para publicar no NuGet, mas é uma boa saída para quem está migrando e quer utilizar a biblioteca.

Projeto

Para apoiar, criei um projeto de exemplo e já disponibilizei no Github.

Este projeto possui a referência para a biblioteca que funciona para o ASPNET Core 2, mas ela não está junto no commit, então baixe as duas e referencie conforme a sua necessidade.

Conclusão

Para quem quer controlar os usuários, claims, entre outras informações – sem utilizar o Entity Framework, ou até mesmo o SQLServer – pode então utilizar o MongoDB sem medo.