gpt4 book ai didi

c# - 从应用程序设置中定义的 KeyVault 检索 secret

转载 作者:行者123 更新时间:2023-12-03 07:01:08 25 4
gpt4 key购买 nike

在我的应用程序服务的“应用程序设置”页面上,如果我添加以下键值,它就可以正常工作。

some:secret -> @Microsoft.KeyVault(VaultName=...)

但是,如果我将该行移到我的应用程序设置文件中:

{
"some": {
"secret": "@Microsoft.KeyVault(VaultName=...)"
}
}

那么我的代码中“some:secret”检索到的值将为空。以下是我将应用程序设置添加到 configuratoin 的方法(还将 ASPNETCORE_ENVIRONMENT 添加到应用服务的应用程序设置):

    public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.ConfigureWebHostDefaults(webBuilder => webBuilder.UseStartup<Startup>()
.ConfigureAppConfiguration((context, config) =>
{
var environment = context.HostingEnvironment.EnvironmentName;

config.SetBasePath(Directory.GetCurrentDirectory());
config.AddJsonFile("appsettings.json", optional: false);
config.AddJsonFile($"appsettings.{environment}.json", optional: false);
config.AddEnvironmentVariables();
}));

我在这里缺少什么?

最佳答案

语法@Microsoft.KeyVault(VaultName=...)仅在部署在Azure AppService(或Function App)中时才有效,并且该值将像该 Blade 中的任何其他应用程序设置一样注入(inject): 作为 ENV 变量。

您的 dotnet 应用程序不会看到(或知道)KeyVault 的任何内容。 secret 的检索由 AppService 处理。这就是为什么它也以同样的方式适用于任何其他运行时(如 Java 或 Node)。

关于c# - 从应用程序设置中定义的 KeyVault 检索 secret ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72332663/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com