C# 如何从Azure vault访问密钥

C# 如何从Azure vault访问密钥,c#,azure-keyvault,C#,Azure Keyvault,我遵循官方文件并开发了代码,但它不起作用。我得把秘密钥匙藏在保险库里 当我调试时,它只会停止在前面提到的步骤中,不会再继续下去。我也试过了,没有调试。都一样。是否还有其他设置/权限需要设置 private void EncryptFields() { string publicKey = GetAzureVaultSecret().Result; } public static async Task<string> GetAzureVaultSecret() { var

我遵循官方文件并开发了代码,但它不起作用。我得把秘密钥匙藏在保险库里

当我调试时,它只会停止在前面提到的步骤中,不会再继续下去。我也试过了,没有调试。都一样。是否还有其他设置/权限需要设置

private void EncryptFields()
{
  string publicKey = GetAzureVaultSecret().Result;
}

public static async Task<string> GetAzureVaultSecret() 
{
  var kv = new KeyVaultClient(new KeyVaultClient.AuthenticationCallback(GetAzureVaultAccessToken));
  var secret = await kv.GetSecretAsync(GlobalConstants.AzureVaultURLSecretURI);            
  return secret.Value;         
}

public static async Task<string> GetAzureVaultAccessToken(string authority, string resource, string scope)
{
  var authContext = new AuthenticationContext(authority);
  ClientCredential clientCred = new ClientCredential(GlobalConstants.AzureVaultClientId, GlobalConstants.AzureVaultClientSecret);

  //STOPS AT THE BELOW STEP AND NOTHING HAPPENS
  AuthenticationResult result = await authContext.AcquireTokenAsync(resource, clientCred);

   if (result == null)
    {
      throw new InvalidOperationException("Failed to obtain the token");
    }

    return result.AccessToken;            
}
private void EncryptFields()
{
字符串publicKey=GetAzureVaultSecret().Result;
}
公共静态异步任务GetAzureVaultSecret()
{
var kv=新的KeyVaultClient(新的KeyVaultClient.AuthenticationCallback(GetAzureVaultAccessToken));
var secret=wait kv.GetSecretAsync(GlobalConstants.AzureVaultURLSecretURI);
返回秘密值;
}
公共静态异步任务GetAzureVaultAccessToken(字符串权限、字符串资源、字符串范围)
{
var authContext=新的AuthenticationContext(授权);
ClientCredential clientCred=新的ClientCredential(GlobalConstants.AzureVaultClientId,GlobalConstants.AzureVaultClientSecret);
//在下面的步骤停止,并且什么也没有发生
AuthenticationResult=等待authContext.AcquireTokenAsync(资源,clientCred);
如果(结果==null)
{
抛出新的InvalidOperationException(“获取令牌失败”);
}
返回result.AccessToken;
}
日志:

ManagedPoolThread#3 00:23:46警告内存使用量超过 记忆监视器阈值。ManagedPoolThread#3 00:23:46警告内存 用法:3,21,95,91168 ManagedPoolThread#3 00:23:46警告数量 由于日志条目之间的最短时间间隔:10,日志被抑制