X.509 証明書を WinRT アプリケーションにインポートしようとしています。証明書は、Windows の Certificates Manager から証明書とその秘密キーを PXCS #12 形式でエクスポートすることによって生成されています。
を使用しFileOpenPicker
てファイルを選択しています。テストを簡単にするために、証明書のパスワードをメソッドにハードコーディングしました。
private async void LoadCertificateAsync()
{
var picker = new FileOpenPicker();
picker.SuggestedStartLocation = PickerLocationId.Desktop;
picker.FileTypeFilter.Add(".pfx");
picker.ViewMode = PickerViewMode.List;
var file = await picker.PickSingleFileAsync();
var buffer = await FileIO.ReadBufferAsync(file);
string certificateData = CryptographicBuffer.EncodeToBase64String(buffer);
string password = "47679005-c8b8-47b5-b54c-277b12854973";
await CertificateEnrollmentManager.ImportPfxDataAsync(
certificateData,
password,
ExportOption.NotExportable,
KeyProtectionLevel.NoConsent,
InstallOptions.None,
"Client Certificate");
}
コードは への呼び出しまで実行され、その時点で次ImportPfxDataAsync
のように受け取ります。UnauthorisedAccessException
タイプ 'System.UnauthorizedAccessException' の未処理の例外が mscorlib.dll で発生しました
WinRT 情報: _InstallResponse
追加情報: アクセスが拒否されました。(HRESULT からの例外: 0x80070005 (E_ACCESSDENIED))
アップロードしようとしている証明書は、SkyDrive のこちらにあります。
エクスポートされた証明書、アプリケーションの構成、または環境のエラーであるかどうかにかかわらず、このエラーが発生する理由を説明するドキュメントが見つかりません。また、それを解決するために何をする必要があるかについての提案もありません。