如何获取 Azure ResourceManagementClient 的标签 object

How to get Tags of Azure ResourceManagementClient object

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

'Microsoft.Azure.Management.Resources 2.14.1-preview' 是从 包管理器控制台

添加的
ResourceManagementClient resourceClient = new ResourceManagementClient(new Microsoft.Azure.CertificateCloudCredentials(SubscriptionId, cert));

var tags = resourceClient.Tags.List();

我收到这个错误; AuthenticationFailed:身份验证失败。 'Authorization' header 不存在或以无效格式提供。

在另一个样品中,零件在下面工作;

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

这些代码部分之间存在差异。 Microsoft.Azure 用于第一个样本,Microsoft.WindowsAzure 用于第二个样本,第二个样本正在工作。

如何解决第一个样品的问题,你能解释一下这个问题吗?

我坚信 ResourceManagementClient 不能与 CertificateCloudCredentials 一起工作,至少 ARM Rest API 是这样。 我想您需要先按照 here 所述使用 login/password 授权用户,然后将获得的令牌与 ResourceManagementClient

一起使用

更新: 首先 link 描述了如何在 AD 中注册应用程序- 可以从门户网站完成。 接下来,您需要在 AD 中注册一个用户,该用户将成为订阅的共同管理员。 之后使用第二个 link 中的代码获取授权令牌(使用在上一步创建的 login/password) 最后使用该令牌进行 ResourceManagementClient 授权,如下所示(不编译):

var credentials = new TokenCloudCredentials(<subscrtiption id>, <token>);
new ResourceManagerClient(credentials).DoSomething();