1

Я хочу использовать WebSiteManagementClient из Azure SDK, но я падаю на первое препятствие - создаю клиент. Я уже создал приложение Active Directory, следуя инструкциям, приведенным в David Murray, и это позволило мне создать TokenCredential, который я успешно использовал для создания баз данных SQL с помощью SQLManagementClient.Как создать Azure Credential, который даст доступ к WebSiteManagementClient?

ClientCredential cc = new ClientCredential("{myApplicationId}", "{myAzurePassword}"); 
var context = new AuthenticationContext("https://login.windows.net/{myTennantId}"); 
var result = context.AcquireToken("https://management.azure.com/", cc); 
if (result == null) 
    throw new InvalidOperationException("Failed to obtain the JWT token"); 
TokenCloudCredentials CloudCred = new TokenCloudCredentials(subscriptionId, result.AccessToken); 
var sqlClient = new SqlManagementClient(CloudCred); 
... 
// and this can be used to create databases in resource groups 

WebSiteManagementClient, похоже, нуждается в другом наборе параметров. Сначала это требует ServiceClientCredential, а затем некоторых DelegatingHandlers. Где я могу получить ServiceClientCredential? и что такое обработчики делегирования. Я искал блог с примером этого, но безуспешно. Я очень ценю любые указатели. Спасибо

ответ

1

Продолжая мой поиск, я нашел и отвечу на аналогичную проблему here, но на этот раз обратился к ComputeManagementClient. Проверив решение, я понял, что был очень близок. Мне просто нужно, чтобы создать учетные данные с result.AccessToken, а не с SubscriptionId, как показано ниже

ClientCredential cc = new ClientCredential("{myApplicationId}", "{myAzurePassword}"); 
var context = new AuthenticationContext("https://login.windows.net/{myTennantId}"); 
var result = context.AcquireToken("https://management.azure.com/", cc); 
if (result == null) 
    throw new InvalidOperationException("Failed to obtain the JWT token"); 
TokenCredentials Cred = new TokenCredentials(result.AccessToken); 
var sqlClient = new SqlManagementClient(CloudCred); 
... 
// and this can be used to create databases in resource groups 

Мои благодаря Ноа Stahl, который предоставил ответ там

+0

Когда я, как вы предлагаете здесь я при попытке использовать WebsiteManagmentClient (при его создании) получите исключение PlatformNotSupportedException. Каждый образец, который я мог найти, требует сертификата, но не имеет смысла, почему это потребуется. Идеи? –