【问题标题】:Configure User Secrets in .NET Core 2.1 Console Apps在 .NET Core 2.1 控制台应用程序中配置用户机密
【发布时间】:2018-10-10 21:02:40
【问题描述】:

我知道在.NET Core MVC 中,您可以使用上下文菜单执行此操作,但此选项不适用于.NET Core Console 应用程序。

如何将用户机密添加到我的 .NET Core 2.1 控制台应用程序?

【问题讨论】:

标签: c# .net-core console-application


【解决方案1】:

.csproj file 中添加<UserSecretsId> 标签。

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

在您的解决方案文件夹中打开一个命令提示符窗口(其中包含.csproj 文件)并输入

dotnet user-secrets set SecretName SecretKey

相应地替换 SecretNameSecretKey

然后您可以使用

在您的应用程序中访问它
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();
}

【讨论】:

  • 仅在 2.1 中。这个问答的目的是什么?
  • 不,它不适用于 2.0。 2.0 中没有全局工具。这已经在文档中进行了解释,我敢打赌有很多正确重复
  • 在 2.0 中,我们必须在项目文件中添加一个工具条目。这就是为什么需要Microsoft.Extensions.SecretManager.Tools。不再需要任何包as explained in the docs
  • This article 解释了如何为 2.0 配置用户密码。前 两个 包被添加为包。第三个添加为DotNetCliToolReference
  • Gotcha,修复了我对 2.1 的问题和答案,因为那是我最初使用的那个。感谢@PanagiotisKanavos 的提醒
猜你喜欢
  • 2018-09-12
  • 2016-12-07
  • 2016-11-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-03-25
  • 1970-01-01
  • 2017-08-21
相关资源
最近更新 更多