6

我正在尝试连接到 Windows Azure 服务管理 API。我必须提供我之前上传到我的 Azure 门户的证书。在 .NET 中,这非常简单,详见此处。但是,在 Metro 中,您不能手动将证书附加到请求中。在微软论坛上,我发现了这个:

HttpClientHandler aHandler = new HttpClientHandler();
aHandler.ClientCertificateOptions = ClientCertificateOption.Automatic;

HttpClient aClient = new HttpClient(aHandler);
HttpResponseMessage aResp = await aClient.GetAsync("https://[azure service management uri]");

除了赋予应用程序使用共享证书的能力外,这应该选择一个证书或向用户提供一个选择证书的选项。证书在我的个人商店中,我什至尝试将证书包含在包清单中,但没有任何效果。看来它只是没有在请求中包含证书。

在 Metro 应用程序中调用需要证书的基于 REST 的 API 的正确方法是什么?

4

1 回答 1

6

我想我对此有一个答案。请检查您用于验证请求的证书。该证书中需要有两件事:

  1. 确保启用“客户端身份验证”作为证书用途之一。

  2. 确保证书具有为其指定的“OID”。

我写了一篇关于在 Windows 8 应用程序中使用 Windows Azure 服务管理 API 的博客文章,您可以在此处阅读:http: //gauravmantri.com/2012/09/08/sumption-windows-azure-service-management-api-in -a-windows-8-application/。我已经讨论了这两个问题,然后还有一些问题。

希望这可以帮助。

于 2012-09-09T07:07:08.830 回答