我正在尝试连接到
Windows Azure服务管理API.我必须提供我之前上传到我的Azure门户网站的证书.在.NET中,这非常简单,如
detailed here.但是,在Metro中,您无法手动将证书附加到请求.在微软论坛上我发现了这个:
HttpClientHandler aHandler = new HttpClientHandler(); aHandler.ClientCertificateOptions = ClientCertificateOption.Automatic; HttpClient aClient = new HttpClient(aHandler); HttpResponseMessage aResp = await aClient.GetAsync("https://[azure service management uri]");
连同为应用程序提供使用共享证书的功能,这应该选择证书或向用户提供选择证书的选项.证书在我的个人商店中,我甚至试图将证书包含在包清单中,但没有任何作用.它似乎只是在请求中不包含证书.
解决方法
我想我有一个答案.请检查您用于验证请求的证书.该证书中需要有两件事:
>确保启用“客户端身份验证”作为证书目的之一.
>确保证书已为其指定“OID”.
我写了一篇关于在Windows 8应用程序中使用Windows Azure Service Management API的博客文章,您可以在这里阅读:http://gauravmantri.com/2012/09/08/consuming-windows-azure-service-management-api-in-a-windows-8-application/.我已经介绍了这两个问题,然后再讨论了一些问题.
希望这可以帮助.