[Dicá rápida] .NET User Secrets

Thiago S. Adriano
2 min readApr 16, 2024

--

Veja neste post rápido uma forma de trabalhar com secrets no .NET em ambiente de desenvolvimento

.NET trabalhando com User Secrets

No desenvolvimento de aplicações .NET, gerenciar configurações sensíveis de forma segura é essencial para proteger informações como strings de conexão, chaves API, e outros segredos que não devem ser expostos em repositórios públicos ou em ambientes de produção.

O .NET oferece uma solução prática para esses cenários, especialmente em ambientes de desenvolvimento. Neste artigo irei explicar o que são User Secrets e como configurá-los.

User Secrets são uma forma de armazenar informações de configuração que não devem ser compartilhadas ou versionadas com o código fonte.

Este recurso é disponível apenas para ambientes de desenvolvimento, o que significa que ele não deve ser usado para armazenar segredos em produção.

É isso mesmo pessoal, a ideia deste artigo é demonstrar uma forma na qual vocês podem criar secrets em um ambiente de desenvolvimento, para produção é recomendado que utilize soluções mais robustas como Azure Key Vault, AWS Secrets Manager ou variáveis de ambiente, dependendo da plataforma de hospedagem.

Bom, para começar a usar User Secrets, você precisa ter um projeto .NET Core ou .NET 5/6/7/8 ou o 9 que no momento que escrevo este artigo esta em preview.

Com o seu projeto OK, vamos configurar ele para utilizar a secrets:

  1. Abra um prompt de comando ou terminal no seu navegador, em seguida, navegue até a pasta do seu projeto e execute o seguinte comando para habilitar os User Secrets:
dotnet user-secrets init

2. Esse comando adiciona uma entrada UserSecretsId ao seu arquivo .csproj, que vincula o projeto ao armazenamento de segredos.

Agora para adicionar um segredo ao armazenamento, use o comando:

dotnet user-secrets set "ConnectionString" "mongodb://localhost/db_local"

Em seguida para acessar acessar os User Secrets no seu código, você deve configurar o provedor de configuração para lê-los, geralmente no método CreateHostBuilder em Program.cs. Aqui está um exemplo básico:

var builder = WebApplication.CreateBuilder(args);
var mongoConnectionString = builder.Configuration["ConnectionString"];
Console.WriteLine($"API Key: {mongoConnectionString}");

Simples assim :) Agora executando o projeto nós temos o seguinte resultado:

.NET working with User Secrets

Bom, espero que tenham gostado e em um próximo artigo eu demonstrarei como trabalhar com Azure Key Vault e AWS Secrets Manager ;)

Até mais pessoal.

--

--

No responses yet