Azure管理库,已拒绝证书

Azure管理库,已拒绝证书,azure,certificate,azure-management,Azure,Certificate,Azure Management,我正在尝试使用Azure管理库NuGet包升级使用ComputeManagementClient.UpgradeByNameAsync的部署 我正在使用证书的指纹从证书存储中加载证书并创建凭据,但我的请求不断被拒绝,并显示以下消息: 服务器无法对请求进行身份验证。请验证证书是否有效并与此订阅关联 我已经做了我能想到的一切来解决这个问题,但什么都没有起作用 我已经四次检查了我的指纹是否正确,以及证书是否显示在azure中的管理证书列表中。关于我可能会出错的地方有什么想法吗?不确定为什么它对证书存储

我正在尝试使用Azure管理库NuGet包升级使用ComputeManagementClient.UpgradeByNameAsync的部署

我正在使用证书的指纹从证书存储中加载证书并创建凭据,但我的请求不断被拒绝,并显示以下消息:

服务器无法对请求进行身份验证。请验证证书是否有效并与此订阅关联

我已经做了我能想到的一切来解决这个问题,但什么都没有起作用


我已经四次检查了我的指纹是否正确,以及证书是否显示在azure中的管理证书列表中。关于我可能会出错的地方有什么想法吗?

不确定为什么它对证书存储不起作用,但另一种方法是使用*.publishsettings文件附带的指纹进行订阅。您可以使用下载此文件

使用此代码块从发布设置文件创建CertificateCloudCredentials类型的对象。成功创建对象后,使用下面的代码块创建computeManagementClient

var computeManagementClient = new ComputeManagementClient(creds);

尽管compute management客户端只接受SubscriptionCloudCredentials,但CertificateCloudCredentials是一个兼容的客户端,将被接受

斯里兰卡的答案相对正确。我将以比上面Sri提供的更冗长的方式将MAML与发布设置文件一起使用,如果您想使用自己的发布设置文件尝试解决方案,请使用一些示例代码


您需要先将证书安装到本地计算机中,然后才能使用它(根据我的经验)。您是否考虑过切换到使用TokenCloudCredential,这将允许您使用?这可能会帮助您缓解与证书相关的问题

如果我没有弄错的话,本地计算机上的证书需要有与其关联的私钥。这是我看到这个错误的一个常见原因。我不知道发生了什么——但我的同事做了一个轻微的重构,并开始得到一个不同的错误。新的错误似乎是我们正在调用的方法(内部某处)的问题。我们换了一种新的方法,所以这个问题可能永远无法完全解决。
var computeManagementClient = new ComputeManagementClient(creds);