1

Je souhaite utiliser WebSiteManagementClient à partir du SDK Azure, mais je suis en train de tomber sur le premier obstacle: la création du client. J'ai déjà créé une application Active Directory, en suivant les instructions fournies par David Murray et cela m'a permis de créer un TokenCredential que j'ai utilisé avec succès pour créer des bases de données SQL avec le SQLManagementClient.Comment créer une référence Azure permettant d'accéder à 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 semble avoir besoin d'un ensemble de paramètres différent. D'abord, il nécessite un ServiceClientCredential et ensuite des DelegatingHandlers. Où puis-je obtenir un ServiceClientCredential? et quels sont les gestionnaires de délégation. J'ai cherché un blog avec un exemple de ceci mais sans succès. J'apprécierais beaucoup les pointeurs. Merci

Répondre

1

Ayant continué ma recherche j'ai trouvé et répondu à un problème similaire here, mais accédant cette fois au client ComputeManagement. Après avoir testé la solution, j'ai réalisé que j'étais très proche. J'ai juste besoin de créer les informations d'identification avec le result.AccessToken, plutôt qu'avec le SubscriptionID, comme ci-dessous

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 

Je tiens à remercier Noah Stahl, qui a fourni la réponse il

+0

Quand je fais comme vous le suggérez ici, je obtenir une exception PlatformNotSupportedException lorsque vous essayez d'utiliser le WebsiteManagmentClient (lors de sa création). Chaque échantillon que je pourrais trouver nécessite un certificat mais cela n'a aucun sens pourquoi cela serait nécessaire. Des idées? –