我正在使用Google API for BigQuery,它要求我使用.p12证书。问题是,无论我如何尝试导入我的证书资源,我都会遇到同样的错误:
系统找不到指定的文件。
我已将文件添加如下:
var certificate = new X509Certificate2(@"key.p12", "notasecret", X509KeyStorageFlags.Exportable);
我是C#和Visual Studio的新手。
答案 0 :(得分:4)
在属性窗口中(选择p12文件并按f4),确保“复制到输出目录”'设置为“始终复制”。这将确保文件被复制到最终的EXE位置。
基本上当你说
时new X509Certificate2(@"key.p12", "notasecret", X509KeyStorageFlags.Exportable);
代码正在运行EXE(或DLL)所在的 key.p12 文件。它与解决方案资源管理器中文件的位置有关,更多的是与文件的运行时位置有关。
另外,你可以尝试这个片段:
var certificate = new X509Certificate2(@"key.p12", "notasecret",
X509KeyStorageFlags.MachineKeySet);
这是因为asp.net没有加载用户证书存储..机器商店是。