2012-08-29 3 views
6

Windows Azureサービス管理APIに接続しようとしています。私は以前私の青空のポータルにアップロードした証明書を提供する必要があります。 .NETでは、detailed hereのように非常に簡単です。ただし、Metroでは、要求に手動で証明書を添付することはできません。メトロアプリケーションのクライアントサイド証明書Windows Azureサービス管理

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を呼び出す正しい方法は何ですか?

+0

私は今夜これをJavascriptのメトロアプリでテストし、そこには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、このスレッドのレスポンダーの1人が実際にこの作業を行うことができました!彼は私に彼のコードを送ったが、それは私にとってもうまくいかなかった。 –

答えて

6

私はこれに答えていると思います。リクエストを認証するために使用している証明書を確認してください。

  1. 証明書の目的の1つとして「クライアント認証」が有効になっていることを確認してください。

  2. 証明書に「OID」が指定されていることを確認してください。

私はあなたがここで読むことができますWindows 8のアプリケーションでWindows Azureのサービス管理APIを消費についてのブログ記事を書いた:http://gauravmantri.com/2012/09/08/consuming-windows-azure-service-management-api-in-a-windows-8-application/。私はこれらの2つの問題をカバーし、さらにいくつかをカバーしました。

これが役に立ちます。

+0

私はあなたのソリューションをテストしました。どうもありがとう。 –

関連する問題