2012-08-29 3 views
6

Windows Azure 서비스 관리 API에 연결하려고합니다. 이전에 나의 푸른 포털에 업로드 한 인증서를 제공해야합니다. .NET에서는 detailed here과 같이 매우 쉽습니다. 그러나 Metro에서는 수동으로 요청에 인증서를 첨부 할 수 없습니다.Windows Azure 서비스 관리 용 Metro 앱의 클라이언트 측 인증서

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

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

가 함께 응용 프로그램을 공유 인증서를 사용할 수있는 기능을 제공하여,이 인증서를 선택하거나 사용자에게 인증서를 선택할 수있는 옵션을 제공한다 : 마이크로 소프트 포럼에 나는이 발견했다. 인증서가 개인 저장소에 있고 패키지 매니페스트에 인증서를 포함하려고했지만 심지어 아무 것도 작동하지 않습니다. 요청에 인증서가 포함되지 않은 것 같습니다.

메트로 앱 내에서 인증이 필요한 REST 기반 API를 호출하는 올바른 방법은 무엇입니까?

+0

저는 오늘 밤에 자바 스크립트 메트로 앱에서 이것을 테스트 해 보았습니다. WinJS.xhr을 사용하여 작동합니다! 이쪽에서 어떤 인증서를 사용할지 묻는 팝업 화면이 나타납니다. 그러나 C# 측에서는 HttpClient 또는 WebRequest를 사용하여 작동하지 않는 것으로 보입니다. 나는 이것에 C# 솔루션을 갖고 싶다. –

+0

나는 같은 배에있다 :). HTML5/JS 앱으로 완벽하게 작동합니다. 모든 것을 시도했지만 XAML/C# App에서 작동하지 않습니다. MSDN 포럼의이 게시물을 계속 주시하십시오. http://social.msdn.microsoft.com/Forums/sv/winappswithcsharp/thread/0d005703-0ec3-4466-b389-663608fff053. Harin,이 스레드의 응답자 중 한 명이 실제로이 작업을 수행 할 수있었습니다 !!! 그는 그의 코드를 보냈지 만 그것은 나에게도 효과가 없었다. –

답변

6

나는 이것에 대한 답을 가지고 있다고 생각합니다. 요청을 인증하는 데 사용중인 인증서를 확인하십시오. 해당 인증서에는 2 가지가 있어야합니다.

  1. "클라이언트 인증"이 인증서 목적 중 하나로서 사용 가능하게 설정되어 있는지 확인하십시오.

  2. 인증서에 "OID"가 지정되어 있는지 확인하십시오. http://gauravmantri.com/2012/09/08/consuming-windows-azure-service-management-api-in-a-windows-8-application/ :

나는 당신이 여기에서 읽을 수있는 윈도우 8 응용 프로그램에서 윈도우 Azure 서비스 관리 API 소비에 대해 블로그에 글을 남긴 바있다. 나는이 두 가지 문제를 다루었 다.

희망이 도움이됩니다.

+0

나는 당신의 솔루션을 테스트했다. 고마워. –

관련 문제