← Назад в блог

Переменные окружения и секреты в .NET Core: лучшие практики

Опубликовано
1 мин чтения
--- просмотров

Environment (окружение) — это именно то место, где ты будешь хранить такие переменные, как строки подключения, разные имена пользователей для авторизации во внешних системах, порты, числовые настройки и так далее.

Dotnet-фреймворк предоставляет специальный интерфейс для работы с env-файлами, а также специальный защищённый контейнер для более чувствительной и защищённой информации, который называется user-secrets.

Добавление секретов в проект

dotnet user-secrets init

dotnet user-secrets set "Redis:ConnectionString" "12345"

Доступ к конфигурации (для секретов — аналогично)

IConfiguration configuration;

// with get
Configuration.GetSection("Redis")

// indexed key style
Configuration["Redis:ConnectionString"]

Маппинг конфигурации в POCO

var moviesConfig = Configuration.GetSection("Redis").Get<RedisOptions>();

Доступ к объекту конфигурации через Dependency Injection

class RedisOptions {
    public string ConnectionString {get; set;}
    //...
}

// binding configuration section to runtime object
services.Configure<RedisOptions>("Redis");

// Accessing anywhere in constructor through DependencyInjection
class Controller {
    public Controller(IOptions<JwtSettingsDto> jwtOptions)
    {
        //...
    }
}

Доступ к строке подключения

Configuration.GetConnectionString("DefaultConnectionString");

Открыт для работы по контракту

Я доступен для работы по контракту. Если у вас есть интересная идея проекта — запишитесь на звонок через Calendly.

Записаться на 30-минутный звонок