用于Windows Azure服务管理的Metro应用程序中的客户端证书

Rob*_*lie 6 c# microsoft-metro windows-runtime

我正在尝试连接到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]");
Run Code Online (Sandbox Code Playgroud)

连同为应用程序提供使用共享证书的功能,这应该选择证书或向用户提供选择证书的选项.证书在我的个人商店中,我甚至试图将证书包含在包清单中,但没有任何作用.它似乎只是在请求中不包含证书.

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

Gau*_*tri 6

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

  1. 确保启用"客户端身份验证"作为证书目的之一.

  2. 确保证书已为其指定"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 /.我已经涵盖了这两个问题,然后还有更多问题.

希望这可以帮助.