2016-04-29 70 views
4

Google Calendar APIにアクセスする秘密鍵を含むファイルをロードしようとしています。これを行うためのFollowing this tutorial. 私はこのコードを作成しました:X509Certificate2で​​指定されたオブジェクトが見つかりません

var certificate = new X509Certificate2("client_secret.json", "notasecret", X509KeyStorageFlags.Exportable); 

私は私の解決策の内側client_secret.jsonファイルをアップロードした、これはファイルのパスです:"...\Visual Studio 2015\Projects\Calendar\Calendar\bin\Debug\client_secret.json"

が、コードができないようですファイルを検索し、このエラーを返す:

Can not find the specified object with X509Certificate2

私はまた読むためにファイルにCopy in the output directoryにプロパティAlways copyを設定します。

+0

キーへのフルパスを追加しようとしましたか? – Marusyk

+0

@MegaTronはい、同じエラーです。私はそれを 'c:\' – Dillinger

+0

に入れようとしました。これはWeb(ASP)アプリケーションですか? – Marusyk

答えて

6

頭痛のビット」後、私はどこ間違って理解することができました、私はで私が証明書を生成コメントで言ったように:

The first step that I did is create the API for Google Calendar, later I clicked on "create credentials" and selected "Service account", choosing the API that I've created before and the key type as json.

この証明書はX509Certificate2待機キーに対して異なっている、そうするための正しい手順は次のとおりです。

。デベロッパーコンソールで[サービスアカウントの管理]をクリックすると、この作業は資格情報タブの右側に表示され、プロジェクトのリストには少しだけ表示されます。

。新しいウィンドウが表示されたら、キーを作成するプロジェクトの横にある3つの点をクリックする必要があります。 (3つの点は右側にあります)。

。ポップアップメニューが表示されたら、Create Keyをクリックする必要があります。

。 P12形式を選択し、「作成」をクリックします。

key.p12は、証明書のファイルの名前で、notasecretはちょうど少し後の表示され、デフォルトのパスワードであることを

var certificate = new X509Certificate2(@"C:\key.p12", "notasecret", X509KeyStorageFlags.Exportable | X509KeyStorageFlags.MachineKeySet); 

注:フォルダにダウンロードしたファイルを保存して、具体的には、あなたのコード内でそれらをリンクステップ4は、つまり、証明書に関連付けられたパスワードです。

私のコードはファイルを見つけて、エラーを表示せずに正しく読み込んだようです。

とにかく私に証明書が何とか正しいものではないか疑問を感じたMegaTronに感謝します。

+0

ありがとう:-) – Marusyk

1

MachineKeySetを使用してください。それは必要性が重要なため、ローカルコンピュータストアを使用することを意味します

var certificate = new X509Certificate2("client_secret.json", "notasecret", X509KeyStorageFlags.Exportable | X509KeyStorageFlags.MachineKeySet); 
+0

残念ながら同じエラー..別のhddドライブにも試してみました: 'var certificate = new X509Certificate2(@" A:\ client_secret.json "、" notasecret "、X509KeyStorageFlags.Exportable | X509KeyStorageFlags.MachineKeySet); ' – Dillinger

+0

@Dillinger Howあなたはjsonキーを作成しましたか?私はあなたがGoogle Developers Consoleを使用していると理解していました。 – Marusyk

+0

私がした最初のステップは、GoogleカレンダーのAPIを作成し、後で「資格情報の作成」をクリックして「サービスアカウント」を選択し、以前作成したAPIとjsonというキータイプを選択することです。 P12フォーマットもあります。 'X509Certificate2'はP12フォーマットでしか動作しないと思いますか? UPDATE:今すぐP12で試してみましたが、まだ同じ結果を得ています。本当に何が間違っているのか分かりません。 – Dillinger

関連する問題