使用 .Net Core 3.0 和 IHostBuilder 实现 Azure Key Vault



我在弄清楚如何将我的应用程序配置为在具有 .NET Core 3.0 预览版的程序.cs文件中使用 Key Vault 时遇到问题。我找到的所有示例都是 Web 主机生成器,但在 3.0 中已被通用主机生成器取代。

以下是我使用 Web 主机生成器找到的示例代码:

public static IWebHost BuildWebHost(string[] args) =>
WebHost.CreateDefaultBuilder(args)
.ConfigureAppConfiguration((ctx, builder) =>
{
var azureServiceTokenProvider = new AzureServiceTokenProvider();
var keyVaultClient = new KeyVaultClient(
new KeyVaultClient.AuthenticationCallback(
azureServiceTokenProvider.KeyVaultTokenCallback));
builder.AddAzureKeyVault(
"myendpoint", keyVaultClient, new DefaultKeyVaultSecretManager());
}
).UseStartup<Startup>()
.Build(); 

这是我到目前为止所拥有的:

public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.ConfigureWebHostDefaults(webBuilder =>
{
webBuilder.UseStartup<Startup>();
var azureServiceTokenProvider = new AzureServiceTokenProvider();
var keyVaultClient = new KeyVaultClient(
new KeyVaultClient.AuthenticationCallback(
azureServiceTokenProvider.KeyVaultTokenCallback));
});

正是这一行我无法弄清楚如何正确实现:

builder.AddAzureKeyVault("myendpoint", keyVaultClient, new DefaultKeyVaultSecretManager());

任何帮助/提示/建议/任何东西将不胜感激!

让它使用以下代码工作!!

public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.ConfigureWebHostDefaults(webBuilder =>
{
webBuilder.UseStartup<Startup>();
}).ConfigureAppConfiguration((ctx, builder) =>
{
var azureServiceTokenProvider = new AzureServiceTokenProvider();
var keyVaultClient = new KeyVaultClient(
new KeyVaultClient.AuthenticationCallback(
azureServiceTokenProvider.KeyVaultTokenCallback));
builder.AddAzureKeyVault("myendpoint", keyVaultClient, new DefaultKeyVaultSecretManager());
});
}

.net core 3.0处于预览状态,功能不稳定且功能不完善。

.NET Core 3于2019年5月7日在Microsoft Build上宣布。目前提供预览版本。计划于 2019 年 9 月正式发布。您可以等待发布版本或提供反馈。

最新更新