如何获取Azure ResourceManagementClient对象的标记

我正在尝试使用ResourceManagementClient类获取资源组的标记列表。

软件包管理器控制台添加“Microsoft.Azure.Management.Resources 2.14.1-preview”

ResourceManagementClient resourceClient = new ResourceManagementClient(new Microsoft.Azure.CertificateCloudCredentials(SubscriptionId, cert)); var tags = resourceClient.Tags.List(); 

我收到这个错误; AuthenticationFailed:身份validation失败。 “授权”标头不存在或以无效格式提供。

在另一个样本中,该部分正在下面工作;

 StorageManagementClient storageClient = new StorageManagementClient(new Microsoft.WindowsAzure.CertificateCloudCredentials(SubscriptionId, cert)); 

这些代码部分之间存在差异。 Microsoft.Azure用于第一个示例, Microsoft.WindowsAzure用于第二个,第二个示例正在运行。

如何在第一个样本中解决问题,您能解释一下这个问题吗?

我坚信ResourceManagementClient无法使用CertificateCloudCredentials,至少对于ARM Rest API来说也是如此。 我猜您需要首先使用此处所述的登录/密码授权用户,然后将获取的令牌与ResourceManagementClient一起使用

更新:第一个链接描述了如何在AD中注册应用程序,可以从门户网站完成。 接下来,您需要在AD中注册将成为订阅的共同管理员的用户。 之后使用第二个链接的代码获取授权令牌(使用在prev步骤中创建的登录/密码)最后使用该令牌进行ResourceManagementClient授权,类似这样(不编译):

 var credentials = new TokenCloudCredentials(, ); new ResourceManagerClient(credentials).DoSomething();