我已经关注了一些文档。因此,设置配置生成器,我添加了以下代码:
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/