gpt4 book ai didi

c# - WaitingForActivation 而不是 key 保管库 secret 值(在 Azure 中),为什么?

转载 作者:行者123 更新时间:2023-12-03 04:00:58 26 4
gpt4 key购买 nike

我正在尝试使用 Azure 中的托管身份连接到我的 Key Vault。为此,我在 appsettings.json 的 KeyVault 下的 Vault 下添加了一个带有 Key Vault 名称的条目。我还对我的 Program.cs 进行了以下更改,基本上添加了一个 IConfiguration 类型的变量来帮助我读取我的 appsettings.json 和整个 ConfigureAppConfiguration 部分。

public IConfiguration Configuration { get; set; }

public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.ConfigureAppConfiguration(builder =>
{
// use Identity Management
var configuration = new ConfigurationBuilder().AddJsonFile("appsettings.json").Build();
var keyVaultUrl = string.Format("https://{0}.vault.azure.net/", configuration.GetSection("KeyVault").GetSection("Vault").Value);

var azureServiceTokenProvider = new AzureServiceTokenProvider();
var keyVaultClient = new KeyVaultClient(
new KeyVaultClient.AuthenticationCallback(
azureServiceTokenProvider.KeyVaultTokenCallback));
builder.AddAzureKeyVault(keyVaultUrl, keyVaultClient, new DefaultKeyVaultSecretManager());

var secretValue = keyVaultClient.GetSecretAsync(keyVaultUrl, "MyApp-MyDatabaseSettings--MyDatabasePassword");
})
.ConfigureWebHostDefaults(webBuilder =>
{
webBuilder.UseStartup<Startup>();
});

当我将鼠标悬停在 SecretValue 上时,我得到一个状态 WaitingForActivation (而不是实际值),知道为什么吗?

编辑:我确实转到了网络应用 > 身份 > 系统分配 > 并将其设置为“打开”。

最佳答案

我通过这样做让它工作:

var secretVal = Task.Run(async () => await keyVaultClient.GetSecretAsync(keyVaultUrl, "MyApp-MyDatabaseSettings--MyDatabasePassword")).Result.Value;

我会将其保留给其他答案,以防有人知道更好的方法。

PS。如果此后您仍然遇到问题,可能需要检查您是否有多个与 Visual Studio 关联的帐户,请转到“工具”-“选项”-“搜索 Azure”-“切换到您已登录 azure cli 的正确帐户”。为了完成设置,还可以使用该电子邮件地址转到您的 keyvault 并使用“获取”“添加新策略”,列出 secret 权限,并将该电子邮件地址添加为“选择主体”...

关于c# - WaitingForActivation 而不是 key 保管库 secret 值(在 Azure 中),为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62382825/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com