从 Azure Key Vault 检索机密:Task<string> 还是常规字符串?

维玛

我有两种方法可以从我的保险库中检索秘密。一个是异步的,而另一个不是。

异步:

public static async Task<string> GetSecret(string secretName)
    {
        try
        {
            return (await GetClient().GetSecretAsync("VaultURL", secretName)).Value;
        }

        catch (Exception ex)
        {
            return ex.Message;
        }
    }

非异步:

      public static string GetSecretWithoutAwait(string SecretName)
    {
        var azureServiceTokenProvider = new AzureServiceTokenProvider();
        var keyVaultClient = new KeyVaultClient(new KeyVaultClient.AuthenticationCallback(azureServiceTokenProvider.KeyVaultTokenCallback));
        return keyVaultClient.GetSecretAsync("vaultUrl", SecretName).Result.Value;
    }

没有异步方法最适合我的需求,如果可能的话,我更喜欢保持这种方式。使检索成为非异步过程的后果是什么?

蔡乔伊

使检索成为非异步过程的后果是什么?

Result构件只存在于Task<T>类型; 它在Task类型上不存在

和 Wait 一样,Result 会同步阻塞调用线程,直到任务完成。这通常不是一个好主意,原因与 Wait 不是一个好主意的原因相同:很容易导致死锁

如果您必须阻止等待Async任务完成,请使用GetAwaiter().GetResult(). Wait并将Result任何异常包装在 中AggregateException,这会使错误处理复杂化。的优点GetAwaiter().GetResult()是它返回一个正常的异常而不是一个AggregateException.

所以我建议你使用 Async 方法来检索秘密

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

无法在Azure Key Vault中设置机密值

通过IKeyVaultClient.GetCertificateAsync检索时,Azure Key Vault证书没有私钥

如何检查Azure Key Vault中的机密是否存在

Azure Key Vault无法从应用程序设置中检索ClientId或ClientSecret

如何在React JS中检索Azure Key Vault

如何从Azure Key Vault机密中清除到期日期?

从Service Fabric访问Azure Key Vault上的机密

从Azure Batch访问Azure Key Vault

Azure Key Vault可以与Functions一起使用来存储队列触发器的连接字符串吗?

将Azure Key Vault机密分配给Devops发布管道的连接字符串

Azure Key Vault门户未显示机密

如何通过本地asp.net应用程序在Azure Key Vault中设置机密

在Azure DevOps中动态访问Key Vault机密变量

如何在链接模板中使用 Azure Key Vault 机密

即使在禁用设置后,Azure Key Vault 也会返回机密

在 Azure Function 中访问 Azure Key Vault 机密

从 Azure Functions 动态访问 Azure Key Vault

无需 SecretVersion 即可访问 Azure Key Vault 机密

如何使用脚本批量创建和更新 Azure Key Vault 机密?

如何使用 DefaultAzureCredential 从 Azure Key Vault 检索 Secret

如何检索生成的 Azure Key Vault 证书的 PFX 密码?

如何在 Azure Devops 发布管道中读取多行 Azure Key Vault 机密

在 DBContext 上设置从 Key Vault 检索的连接字符串的正确方法是什么?

无法使用 azure JavaScript 函数和 Key Vault 机密检索 cosmosDB 数据

Azure Key Vault Chef 食谱

无法在 ansible 中获取 Azure Key Vault 机密

如何使用實體框架連接字符串使用 Azure Key Vault

尝试使用 Azure Functions 在 Azure Key Vault 中创建机密

Azure Key Vault - 检索 RSA 公钥以进行本地加密