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

时间:2019-07-09 16:58:00

标签: azure-keyvault .net-core-3.0

我在弄清楚如何配置应用程序以使用.NET Core 3.0 Preview在Program.cs文件中使用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());

任何帮助/提示/建议/任何事情都将不胜感激!

2 个答案:

答案 0 :(得分:0)

.net core 3.0处于预览状态,该不稳定并具有完善的功能。

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

答案 1 :(得分:0)

使用下面的代码让它起作用!

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