Ошибка HRESULT E_FAIL была возвращена после вызова COM-компонента
В вашем случае необходимо запросить интерфейс для ввода имени пользователя и пароля, чтобы получить кредит.
Но WebApp - это песочница . Песочница препятствует доступу ко всем COM-серверам вне процесса.
Как отметил rickvdbosch, вы можете зарегистрировать Azure AD WebApp, чтобы получить clientId и secretkey. Более подробную информацию можно найти в этом общем количестве . Ниже приведен демонстрационный код доступа к keyvault.
public static async Task<string> GetAccessToken(string tenantId,string appId,string secretKey)
{
var context = new AuthenticationContext("https://login.windows.net/" + tenantId);
ClientCredential clientCredential = new ClientCredential(appId, secretKey);
var tokenResponse =await context.AcquireTokenAsync("https://vault.azure.net", clientCredential); //KeyVault resource : https://vault.azure.net
var accessToken = tokenResponse.AccessToken;
return accessToken;
}
var kv = new KeyVaultClient(new KeyVaultClient.AuthenticationCallback(GetAccessToken));
Мы также можем использовать для этого функцию Azure Web MSI . Вы также можете узнать, как получить доступ к коду keyvault из этого общего числа
using Microsoft.Azure.Services.AppAuthentication;
using Microsoft.Azure.KeyVault;
// ...
var azureServiceTokenProvider = new AzureServiceTokenProvider();
string accessToken = await azureServiceTokenProvider.GetAccessTokenAsync("https://management.azure.com/");
// OR
var kv = new KeyVaultClient(new KeyVaultClient.AuthenticationCallback(azureServiceTokenProvider.KeyVaultTokenCallback));