我有一个关于 C# 中的 DefaultAzureCredential() 的问题,它是一个 Azure 方法

问题描述 投票:0回答:0

我目前正在使用 .NET 6 开发 API 控制器。

Azure SQL 使用始终加密,但连接到 .NET 时发生错误。

当我纠正错误时,我问你一个问题,因为已经发现了一个不寻常的部分。

下面的代码是第一个发生错误的代码。

var azureKeyVaultProvider = new SqlColumnEncryptionAzureKeyVaultProvider(new DefaultAzureCredential());

var providers = new Dictionary<string, SqlColumnEncryptionKeyStoreProvider>
                {
                    { SqlColumnEncryptionAzureKeyVaultProvider.ProviderName, azureKeyVaultProvider }
                };

SqlConnection.RegisterColumnEncryptionKeyStoreProviders(providers);

按照如下修改后,没有出现错误,正常解密得到数据。

var keyList = new KeyClient(new Uri(kvUrl), new DefaultAzureCredential());
_ = keyList.GetKey("[KeyName]");

var azureKeyVaultProvider = new SqlColumnEncryptionAzureKeyVaultProvider(new DefaultAzureCredential());

var providers = new Dictionary<string, SqlColumnEncryptionKeyStoreProvider>
                {
                    { SqlColumnEncryptionAzureKeyVaultProvider.ProviderName, azureKeyVaultProvider }
                };

SqlConnection.RegisterColumnEncryptionKeyStoreProviders(providers);

重点是获取密钥列表,并在不分配变量的情况下获取加密中使用的密钥,但它们工作得很好。

var keyList = new KeyClient(new Uri(kvUrl), new DefaultAzureCredential());
_ = keyList.GetKey("[KeyName]");

我想知道 DefaultAzureCredit 是否与此相关。

c# .net azure azure-keyvault
© www.soinside.com 2019 - 2024. All rights reserved.