当前位置: 首页 > 知识库问答 >
问题:

Azure存储使用KeyVault时的UseDevelopmentStore=true

赵智勇
2023-03-14

我已将API配置为使用托管标识从Azure KeyVault获取Azure存储连接字符串。

现在的问题是,当我在Visual Studio中本地运行代码时,它不再使用appsettings中的连接字符串。发展json是“StorageAccount”:“UseDevelopmentStorage=true”

因此,在本地运行时,我无法使用模拟器。

我已经在我的控制器中创建了以下条件来解决这个问题:

    public FileController(IConfiguration configuration, IWebHostEnvironment env)
    {
        this.configuration = configuration;

        if (env.IsDevelopment())
        {
            conn = this.configuration.GetConnectionString("StorageAccount");

        }
        else
        {
            conn = this.configuration["StorageConnectionString"];

        }
    }

这是正确的方法吗?

共有1个答案

祁正浩
2023-03-14

在本地,如果您的ASPNETCORE_环境设置为Development,则它将读取您的本地存储帐户,如UseDevelopmentStorage=true

当你发布到azure时,它将使用你的webapp的MSI从密钥库获取连接字符串。

有关更多详细信息,请参阅以下代码:

private IConfiguration _configuration;
private IWebHostEnvironment _env;

public WeatherForecastController(IConfiguration configuration, IWebHostEnvironment env)
{
    _configuration = configuration;
    _env = env;
}

if (_env.IsDevelopment())
{
    con = _configuration.GetSection("StorageAccount").Value;
}
else
{
    AzureServiceTokenProvider azureServiceTokenProvider = new AzureServiceTokenProvider();
    var keyVaultClient = new KeyVaultClient(new KeyVaultClient.AuthenticationCallback(azureServiceTokenProvider.KeyVaultTokenCallback));
    con = keyVaultClient.GetSecretAsync("https://xxxx.vault.azure.net/secrets/xxxx").GetAwaiter().GetResult().Value;

}
 类似资料:
  • 我在Azure Keyvault中存储了一个.pfx文件。我有“证书标识符”、“密钥标识符”、“秘密标识符”的值。我想在java程序中使用.pfx文件。我怎么才能从KeyVault取文件?

  • 为了简单起见,假设我想使用Azure REST API从特定存储库中的所有秘密中使用秘密名称和秘密值构建一个字典。 谢谢你。

  • 我试图将我的私钥存储到Azure key Vault中,但当我取回它时,我的私钥被更改了。 如果我将私钥放入web.config文件中,它就可以正常工作,没有任何问题。 抱歉,我刚开始用Azure keyvault。请帮帮忙。谢谢你。

  • 我们有一组blob触发器函数,我们计划为这些azure函数使用新的azure webjobs存储。我的问题是:由于新的存储帐户没有任何已处理文件的跟踪,是否会重新处理blob?如果是,我们可以避免这种再加工吗?在哪种情况下?

  • 在使用Java从azure keyvault检索机密时,我面临一个问题 我使用了以下依赖项azure-security-keyvault-secrets-4.3.6。jar azure-identity-1.4.2。jar azure-core-1.12.0。罐子 还有我的密码, 当我运行上面的代码时,我得到了下面的错误

  • 我是azure云服务平台的新手。今天我遇到了Azure提供的Key-Vault存储服务。它具有存储应用程序级密钥和设置的能力。它具有增强的数据保护功能,是安全可靠的。 但我不清楚的是,要连接到Key-Vault,我需要存储在应用程序配置中的Key-Vault的工件。 如果是这样的话,当有人在密钥值上掉线时,他不会连接到我的密钥库并读取我的所有密钥。 如果我应该加密我的本地密钥存储库设置,那么我可以