这是我的问题;目前,我正在使用位于我的计算机上的当地的证书密钥文件,该文件是发送WebRequest所需的。该项目将在其他地方使用,我不愿意将证书发送给他们。
我试图使用构建操作 - 内容将构建项目中的文件包含在项目中。不过,我找不到此文件的位置。我还将"嵌入式资源"用作构建操作,但我遇到了问题,因为我只能将文件加载到流中,这不是我想要的,因为对象:
X509Certificate2 certificate = new X509Certificate2(certName, password);
仅使用证书文件的位置,不需要打开。
任何人都可以提供我能够在项目中构建文件的解决方案,仅将其路径引用到上面的对象?
?谢谢,
您可以通过提供嵌入式资源名称:
来获得以下证书using (var stream = Assembly.GetExecutingAssembly().GetManifestResourceStream(resourceName))
{
Byte[] assemblyData = new Byte[stream.Length];
stream.Read(assemblyData, 0, assemblyData.Length);
var cert = new X509Certificate2();
cert.Import(assemblyData);
}
但是,正如 @alex.k在评论中所说的那样,它只会略微提高安全性,因为"资源"很容易访问,您唯一要实现的是,该文件将不容易看到。