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

Implementing Azure Key Vault with .Net Core 3.0 & IHostBuilder

我无法弄清楚如何配置我的应用程序以在我的 Program.cs 文件中使用 .NET Core 3.0 预览版的 Key Vault。我找到的所有示例都与 Web Host Builder 相关,但在 3.0 中已被 Generic Host Builder 取代。

这是我使用 Web Host Builder 找到的示例代码:

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());

任何 helps/tips/advice/anything 都将不胜感激!!

.net core 3.0预览版,不稳定,功能完善。

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

用下面的代码搞定了!!

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());
                });
    }