2012-08-29 29 views
6

Estoy intentando conectarme a la API de Windows Azure Service Management. Tengo que proporcionar un certificado que cargué previamente en mi portal azul. En .NET, esto es muy fácil, como detailed here. En Metro, sin embargo, no puede adjuntar un Certificado a la solicitud de forma manual. En el foro de Microsoft encontré esto:Certificado del lado del cliente en una aplicación Metro para Windows Azure Service Management

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

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

Junto con dar a la aplicación de la capacidad de utilizar los certificados compartidos, esto debe seleccionar un certificado o presentar al usuario una opción para seleccionar el certificado. El certificado está en mi tienda personal, e incluso he intentado incluir el certificado en el manifiesto del paquete, pero nada funciona. Parece que simplemente no incluye el certificado en la solicitud.

¿Cuál es la forma correcta de llamar a una API basada en REST que necesita un certiticado dentro de una aplicación de Metro?

+0

¡He probado esto esta noche en una aplicación de metro de Javascript, y funciona con WinJS.xhr! En este lado, aparece una pantalla emergente preguntándome qué certificado quiero usar. Sin embargo, en el lado de C#, esto no parece funcionar con HttpClient o WebRequest. Me encantaría tener una solución C# para esto. –

+0

Estoy en el mismo barco :). Funciona perfectamente con la aplicación HTML5/JS. Intenté todo, pero no pude hacerlo funcionar en la aplicación XAML/C#. Vigile esta publicación en los foros de MSDN: http://social.msdn.microsoft.com/Forums/sv/winappswithcsharp/thread/0d005703-0ec3-4466-b389-663608fff053. ¡Harin, uno de los que respondieron en este hilo fue capaz de hacer que esto funcionara! Él me envió su código pero tampoco funcionó para mí. –

Respuesta

6

Creo que tengo una respuesta a esto. Verifique el certificado que está utilizando para autenticar sus solicitudes. Es necesario que haya dos cosas en ese certificado:

  1. Asegúrese de que la "Autenticación del cliente" esté habilitada como uno de los propósitos del certificado.

  2. Asegúrese de que el certificado tiene "OID" especificado para él.

escribí un post sobre el consumo de API de administración de servicios de Windows Azure en una aplicación de Windows 8 que se puede leer aquí: http://gauravmantri.com/2012/09/08/consuming-windows-azure-service-management-api-in-a-windows-8-application/. He cubierto estos dos problemas y luego algunos más.

Espero que esto ayude.

+0

He probado su solución, ¡funciona! Muchas gracias. –

Cuestiones relacionadas