使用 X509Certificate2 找不到指定的对象
Can not find the specified object with X509Certificate2
我正在尝试加载一个文件,其中包含用于访问 Google Calendar API
的密钥。 Following this tutorial.
为此,我创建了以下代码:
var certificate = new X509Certificate2("client_secret.json", "notasecret", X509KeyStorageFlags.Exportable);
我已经在我的解决方案中上传了 client_secret.json
文件,这是文件的路径:"...\Visual Studio 2015\Projects\Calendar\Calendar\bin\Debug\client_secret.json"
但是代码似乎无法找到文件并且 return 这个错误:
Can not find the specified object with X509Certificate2
我还设置了 属性 Always copy
on Copy in the output directory
要读取的文件。
尝试使用MachineKeySet
。这意味着需要使用本地计算机存储密钥:
var certificate = new X509Certificate2("client_secret.json", "notasecret", X509KeyStorageFlags.Exportable | X509KeyStorageFlags.MachineKeySet);
经过一番“头痛”之后,我能够理解哪里出了问题,正如我在评论中所说,我通过以下方式生成证书:
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
等待的密钥不同,因此正确的步骤是:
1。单击开发人员控制台上的管理服务帐户,此工作位于凭据选项卡的右侧,就在您的项目列表旁边。
2。出现一个新的window,您需要点击您要创建密钥的项目旁边的三个点。 (三个点在右边)。
3。出现一个弹出菜单,然后,您需要单击 Create Key
。
4。选择P12格式,然后点击创建。
5。将下载的文件保存到一个文件夹中,并将它们 link 保存在您的代码中,特别是:
var certificate = new X509Certificate2(@"C:\key.p12", "notasecret", X509KeyStorageFlags.Exportable | X509KeyStorageFlags.MachineKeySet);
注意key.p12
是证书的文件名,notasecret
是第4步后面出现的默认密码,也就是关联的密码到证书。
所以我的代码似乎找到了文件并正确读取它而没有显示任何错误。
无论如何要感谢 MegaTron 让我怀疑证书有什么不对。
我正在尝试加载一个文件,其中包含用于访问 Google Calendar API
的密钥。 Following this tutorial.
为此,我创建了以下代码:
var certificate = new X509Certificate2("client_secret.json", "notasecret", X509KeyStorageFlags.Exportable);
我已经在我的解决方案中上传了 client_secret.json
文件,这是文件的路径:"...\Visual Studio 2015\Projects\Calendar\Calendar\bin\Debug\client_secret.json"
但是代码似乎无法找到文件并且 return 这个错误:
Can not find the specified object with X509Certificate2
我还设置了 属性 Always copy
on Copy in the output directory
要读取的文件。
尝试使用MachineKeySet
。这意味着需要使用本地计算机存储密钥:
var certificate = new X509Certificate2("client_secret.json", "notasecret", X509KeyStorageFlags.Exportable | X509KeyStorageFlags.MachineKeySet);
经过一番“头痛”之后,我能够理解哪里出了问题,正如我在评论中所说,我通过以下方式生成证书:
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
等待的密钥不同,因此正确的步骤是:
1。单击开发人员控制台上的管理服务帐户,此工作位于凭据选项卡的右侧,就在您的项目列表旁边。
2。出现一个新的window,您需要点击您要创建密钥的项目旁边的三个点。 (三个点在右边)。
3。出现一个弹出菜单,然后,您需要单击 Create Key
。
4。选择P12格式,然后点击创建。
5。将下载的文件保存到一个文件夹中,并将它们 link 保存在您的代码中,特别是:
var certificate = new X509Certificate2(@"C:\key.p12", "notasecret", X509KeyStorageFlags.Exportable | X509KeyStorageFlags.MachineKeySet);
注意key.p12
是证书的文件名,notasecret
是第4步后面出现的默认密码,也就是关联的密码到证书。
所以我的代码似乎找到了文件并正确读取它而没有显示任何错误。
无论如何要感谢 MegaTron 让我怀疑证书有什么不对。