如何将 ASP.NET Core Web API appsettings.(qa/dev/staging/prod).json 中的值替换为 Azure Keyvault 中的值?

问题描述 投票:0回答:1

我有

appsettings.(test/staging/prod).json
,它包含一个 JSON 格式的密码字段,如下所示:

{ 
    "database:      
        { 
             "password" :"some_value"
        }
}

我已通过指定“database--password”作为密钥名称和带有密码的值将密码存储在 Azure Keyvault 中。

在我的

program.cs
文件中,我通过
AddAzureKeyVault
扩展检索密码,我可以看到密码已从 Azure Keyvault 成功检索。

现在如何将从 Azure Keyvault 检索到的密码值映射到

appsettings.json
文件中?

Azure Keyvault 检索发生后,如何自动将密码值推送到下面的 json 中,以便代码可以访问它?

{ 
    "database: 
         { 
             "password" :"**password_from_azure**"
         }
} 
c# azure asp.net-core-webapi azure-keyvault
1个回答
0
投票

要将值推送到

appsettings.json
,文件必须包含相同的密钥,其中包含虚拟/空值。

 "database": {
   "password": "sample val "
 }

检索到的KeyVault值:

var kvval = "Value from KeyVault";
  • 检索到 Key Vault 值后,将该值设置为配置。
builder.Configuration["database:password"] = kvval;
var app = builder.Build();
var conn= new ConfigurationBuilder()
        .AddJsonFile("appsettings.json", optional: true)
        .AddEnvironmentVariables()
        .Build();
  • 使用
    Controller
    IConfiguration
  • 中检索
 public IConfiguration myconfig;
 public WeatherForecastController(ILogger<WeatherForecastController> logger,IConfiguration config)
 {
     _logger = logger;
     myconfig=config;
 }
var KVVal= myconfig["database:password"]

输出:

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.