Настройка пользовательских секретов в консольных приложениях .NET Core 2.1 - PullRequest
0 голосов
/ 10 октября 2018

Я знаю, что в .NET Core MVC вы можете сделать это с помощью контекстного меню, но эта опция недоступна для .NET Core Console приложений.

Как добавить пользовательские секреты в мой .NET Core 2.1Консольное приложение?

1 Ответ

0 голосов
/ 10 октября 2018

Добавьте тег <UserSecretsId> в .csproj file.

<PropertyGroup>  
   <OutputType>Exe</OutputType>
   <TargetFramework>netcoreapp2.x</TargetFramework>
   <UserSecretsId>4245b512-chsf-9f08-09ii-12an1901134c</UserSecretsId>
</PropertyGroup>

Откройте окно командной строки в папке вашего решения (с параметром .csprojфайл) и введите

dotnet user-secrets set SecretName SecretKey

Замените SecretName и SecretKey соответственно.

Затем вы можете получить к нему доступ в своем приложении, используя

class Program
{ 
    private static IConfigurationRoot Configuration;
    const string SecretName= "SecretName";

    private static void Main(string[] args)
    {
        BootstrapConfiguration();
        Console.WriteLine($"The Secret key is {Configuration[SecretName]}");
    }
}

private static void BootstrapConfiguration()
{
    string env = Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT");

    if (string.IsNullOrWhiteSpace(env))
    {
        env = "Development";
    }

    var builder = new ConfigurationBuilder();

    if (env == "Development")
    {
        builder.AddUserSecrets<Program>();
    }

    Configuration = builder.Build();
}
...