【发布时间】:2020-07-26 11:22:31
【问题描述】:
我想为我的 .NET Core Web API 使用配置设置。我为 DI 容器安装了 Microsoft.Extensions.Configuration 包。
首先我有 4 个配置文件
-
appsettings.json
当所有三个环境使用相同的配置值时,这就是放置它的文件
-
appsettings.Development.json
仅用于开发目的的基本配置值。例如。数据库连接指向本地主机,令牌秘密是“秘密”,例如:
.
{
"Database": {
"ConnectionString": "Server=localhost;Port=3306;Database=db;Uid=root;Pwd=admin;Pooling=true;"
}
}
-
appsettings.Staging.json
和开发文件差不多
-
appsettings.Production.json
这里的情况有所不同。我不能将敏感信息放入该文件,例如令牌秘密。这些值应该来自环境变量
所以在我的代码中,我可以通过依赖注入访问配置值
public class MyClass
{
public MyClass(IConfiguration configuration)
{
string databaseConnectionString = configuration["Database:ConnectionString"];
}
}
但是如果代码在生产模式下运行呢?生产文件中不存在该信息,因此我必须从环境变量中读取。
我是否必须创建一个名为 Database:ConnectionString 的环境变量,如果 .NET Core 在启动期间将所有系统环境变量映射到配置文件中(如果它们不存在)?或者我如何将敏感数据传递给配置?
【问题讨论】:
-
您是否有机会查看文档中有关环境变量的部分? docs.microsoft.com/en-us/aspnet/core/fundamentals/configuration/…
标签: asp.net-core .net-core asp.net-core-webapi