c# - 如何从配置生成器中的 Key Vault 获取 secret 值

标签 c# azure connection-string azure-keyvault

我已经关注了一些文档。因此,设置配置生成器,我添加了以下代码:

AzureServiceTokenProvider azureServiceTokenProvider = new AzureServiceTokenProvider();
KeyVaultClient keyVaultClient = new KeyVaultClient(new KeyVaultClient.AuthenticationCallback(azureServiceTokenProvider.KeyVaultTokenCallback));
builder.AddAzureKeyVault($"https://{Configuration.GetSection("Azure")["KeyVaultName"]}.vault.azure.net/", keyVaultClient, new DefaultKeyVaultSecretManager());

现在,我正在尝试从存储在保管库中的命名 secret 中获取值。

我以为我能把它拉出来这样的东西:

builder.getSecret('DevDbPassword');

这样我就可以使用 SqlConnectionStringBuilder 来更新密码。

有人可以帮忙弄清楚如何获得 secret 吗?

谢谢 埃里克

最佳答案

为什么你想在配置生成器中获取 secret ?您可以通过以下方式获取 secret :

     AzureServiceTokenProvider azureServiceTokenProvider = new AzureServiceTokenProvider();
     KeyVaultClient keyVaultClient = new KeyVaultClient(new KeyVaultClient.AuthenticationCallback(azureServiceTokenProvider.KeyVaultTokenCallback));
     var secret = await keyVaultClient.GetSecretAsync("https://<YourKeyVaultName>.vault.azure.net/secrets/AppSecret")
             .ConfigureAwait(false);
     Message = secret.Value;

引用这个document了解更多详情。

如果你还想在Configuration Builder中获取secret,可以引用这个sample .

public string Message { get; set; }

public AboutModel(IConfiguration configuration)
{
    _configuration = configuration;
}

private readonly IConfiguration _configuration = null;

public void OnGet()
{
    Message = "My key val = " + _configuration["AppSecret"];
}

关于c# - 如何从配置生成器中的 Key Vault 获取 secret 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56114593/

相关文章:

ms-access - ADODB 连接字符串 : Workgroup Information file is Missing?

sql-server - ODBC 中的连接超时

c# - 没有原则在线程上使用Authorize属性时Asp.net Core Action 不返回401?

C#:python 文件中的类反射机制(获取函数、参数等)

c# - 在 .NET 中处理对象?

c# - C# 中指向根类型类的指针

azure - 如何使用 Azure EventHub 触发器返回到检查点?

javascript - 使用 NodeJS 将服务总线队列中的消息延迟到预定时间进行处理

sql - Azure SQL 数据迁移助手卡在 “Migrate Data” 上

connection-string - appsettings.json 中 sa 用户的正确连接字符串是什么