Как получить список виртуальных машин в Azure с помощью c #? - PullRequest
0 голосов
/ 17 декабря 2018

Я пытаюсь получить список моих VMS в Azure, используя C #.Я нашел этот пакет самородков Microsoft.Azure.Management.Compute, но я не могу его создать.То, что я пробовал:

 public class CustomLoginCredentials : ServiceClientCredentials
{
    private string AuthenticationToken { get; set; }
    public override void InitializeServiceClient<T>(ServiceClient<T> client)
    {
        var authenticationContext =
            new AuthenticationContext("https://login.windows.net/{tenantID}");
        var credential = new ClientCredential(clientId: "xxxxx-xxxx-xx-xxxx-xxx", clientSecret: "{clientSecret}");

        var result = authenticationContext.AcquireToken(resource: "https://management.core.windows.net/",
            clientCredential: credential);

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

        AuthenticationToken = result.AccessToken;
    }
    public override async Task ProcessHttpRequestAsync(HttpRequestMessage request, CancellationToken cancellationToken)
    {
        if (request == null)
        {
            throw new ArgumentNullException("request");
        }

        if (AuthenticationToken == null)
        {
            throw new InvalidOperationException("Token Provider Cannot Be Null");
        }



        request.Headers.Authorization = new AuthenticationHeaderValue("Bearer", AuthenticationToken);
        request.Headers.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));

        //request.Version = new Version(apiVersion);
        await base.ProcessHttpRequestAsync(request, cancellationToken);

    }
}

Но я получаю сообщение об ошибке компиляции этого класса, в котором говорится, что AuthenticationContext пространство имен не может быть найдено.Я не могу найти о том, как создать этот простой клиент на документах.

Ответы [ 2 ]

0 голосов
/ 17 декабря 2018

Это пакет nuget, который вам нужен: https://www.nuget.org/packages/Microsoft.IdentityModel.Clients.ActiveDirectory/

Compute nuget необходим для конкретных вещей ВМ.Для аутентификации вам нужен тот, который я выложил.

0 голосов
/ 17 декабря 2018

Вы настраиваете субъект обслуживания (SP)?С нашей документацией для аутентификации SDK с использованием SP можно ознакомиться здесь: https://docs.microsoft.com/en-us/dotnet/azure/dotnet-sdk-azure-authenticate?view=azure-dotnet#mgmt-auth

Вам необходимо добавить следующие пакеты nuget в ваш проект.

Install-Package Microsoft.Azure.Management.Fluent
Install-Package Microsoft.Azure.Management.ResourceManager.Fluent
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...