【问题标题】:Can't get Azure KeyVault configuration provider to work无法让 Azure KeyVault 配置提供程序工作
【发布时间】:2018-01-02 16:36:48
【问题描述】:

我试图在 .Net Core 控制台应用程序中设置 Azure KeyVault 配置提供程序。 我已经按照this 文档这样做了。

但它不获取秘密。不过,我可以使用 KeyVaultClient 获取它。

完整代码如下:

class Program
{
    public static IConfigurationRoot Configuration { get; set; }

    static void Main(string[] args)
    {
        var builder = new ConfigurationBuilder()
        .SetBasePath(Directory.GetCurrentDirectory())
        .AddJsonFile("appsettings.json");

        Configuration = builder.Build();

        var secretUri = $"{Configuration["Vault"]}secrets/testSecret/4438b47c28cc413f9434bcb2d3c7d7ca";

        var keyVault = new KeyVaultClient(async (string authority, string resource, string scope) => {
            var authContext = new AuthenticationContext(authority);
            var credential = new ClientCredential(Configuration["ClientId"], Configuration["ClientSecret"]);
            var token = await authContext.AcquireTokenAsync(resource, credential);

            return token.AccessToken;
        });

        var result1 = keyVault.GetSecretAsync(secretUri).Result.Value;

        builder.AddAzureKeyVault(
            Configuration["Vault"],
            Configuration["ClientId"],
            Configuration["ClientSecret"]);

        var result2 = Configuration["testSecret"];
    }
}

result1 从 keyvault 获取值,但 result2null

不确定这里出了什么问题。

【问题讨论】:

    标签: c# azure .net-core azure-keyvault


    【解决方案1】:

    我也关注你提到的documentation。如果我在添加 keyVault 后重新构建构建器,我可以获得价值。

     builder.AddAzureKeyVault(
                Configuration["Vault"],
                Configuration["ClientId"],
                Configuration["ClientSecret"]);
    Configuration = builder.Build();
    var result2 = Configuration["testSecret"];
    

    测试结果

    【讨论】:

    • 谢谢!重建做到了。 :)
    猜你喜欢
    • 2019-11-10
    • 1970-01-01
    • 2021-05-20
    • 1970-01-01
    • 2023-02-01
    • 1970-01-01
    • 2023-02-20
    • 1970-01-01
    相关资源
    最近更新 更多