c# - 如何从 Configuration Builder 中的 Key Vault 获取密钥的值
问题描述
我已经关注了一些文档。因此,设置配置生成器,我添加了以下代码:
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());
现在,我正在尝试从存储在保险库中的命名机密中获取值。
我以为我可以像这样把它拉出来:
builder.getSecret('DevDbPassword');
这样我就可以使用 SqlConnectionStringBuilder 来更新密码。
有人可以帮助弄清楚如何获得秘密吗?
谢谢埃里克
解决方案
为什么要在 Configuration Builder 中获取秘密?您可以通过以下方式获取秘密:
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;
有关详细信息,请参阅此文档。
如果您仍想在 Configuration Builder 中获取 secret,可以参考此示例。
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"];
}
推荐阅读
- ruby - RestClient 在 ruby on rails 中发布请求
- c# - 我可以在不使用 HtmlAgilityPack 之类的 3rd 方库的情况下抓取 HTML 类吗?
- mysql - 是否可以在 my.ini 文件中存储密码?
- .htaccess - 如何htaccess从index.php重定向到/仅在特定文件夹中?
- java - Android 谷歌地图、移动标记崩溃应用
- powershell - PS脚本在文件类型中打印目录名称
- mongodb - mongodb:在其他文档中按条件查找所有记录
- html - 为什么标题框元素超出正文框元素?
- pyaudio - 如何在谷歌云外壳中安装 pyaudio 模块?
- php - 如何正确拆分包含 HTML 实体的 php 中的字符串