我将 Google API 用于 BigQuery,它要求我使用 .p12 证书。问题是,无论我如何尝试导入我的证书资源,我都会遇到相同的错误:
我已按如下方式添加文件:
var certificate = new X509Certificate2(@"key.p12", "notasecret", X509KeyStorageFlags.Exportable);
我是 C# 和 Visual Studio 的新手。
最佳答案
在属性窗口中(选择 p12 文件并按 f4),确保将“复制到输出目录”设置为“始终复制”。这将确保文件被复制到最终的 EXE 位置。
基本上当你说
new X509Certificate2(@"key.p12", "notasecret", X509KeyStorageFlags.Exportable);
代码期望 key.p12 文件就在 EXE(或 DLL)运行的地方。它与解决方案资源管理器中文件的位置关系不大,而与文件的运行时位置有关。
另外,你能试试这个片段吗:
var certificate = new X509Certificate2(@"key.p12", "notasecret",
X509KeyStorageFlags.MachineKeySet);
这是因为用户证书存储不是由 asp.net 加载的。机器存储是。
关于c# - 错误 : 'The system cannot find the file specified.' when trying to access certificate,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30632477/