我有个问题。我有一个Web服务,并且我需要在我的Web服务中读取“ .p12”文件来处理一些指令。必须读取“ .p12”文件(文件[认证]允许我在我的域[Google电子邮件服务]中创建用户)
好吧,在我的机器上,Web服务运行良好,但是当我在服务器中发布Web服务时,它无法正常工作。我已将文件(.p12)复制到Web服务的主文件夹中,也复制到bin文件夹中,并且复制到服务器的“ C”单元中,但是它不起作用。
这是读取文件的行(我正在使用C#):
var certificate = new X509Certificate2(@"C:\\nameOfMyFile.p12", "notasecret", X509KeyStorageFlags.Exportable);
它显示了一个错误:服务器无法处理该请求。--->内部错误。
之后,我尝试了这个:
string hpath = HttpContext.Current.Server.MapPath(".");
hpath = hpath + "\\nameOfMyFile.p12";
var certificate = new X509Certificate2(System.Web.HttpContext.Current.Server.MapPath(hpath, "notasecret", X509KeyStorageFlags.Exportable);
它向我显示了相同的错误:服务器无法处理请求。--->内部错误。
之后,我只写文件名:
var certificate = new X509Certificate2(@"nameOfMyFile.p12", "notasecret", X509KeyStorageFlags.Exportable);
它向我显示此错误:服务器无法处理该请求。--->系统找不到指定的文件
因此,我需要为文件,文件夹,Web服务分配一种特殊权限吗?读取这样的文件(.p12)的最佳方法是什么?
提前致谢。
老实说,我不知道这是否是最好的方法,但是对我来说,它是可行的。
添加以下名称空间:
using System.Security.Cryptography;
using System.Security.Cryptography.X509Certificates;
我使用以下代码:
X509Certificate2 certificate = new X509Certificate2(@"file.p12", "password", X509KeyStorageFlags.MachineKeySet | X509KeyStorageFlags.Exportable);
最后,我将我的“ .p12”文件复制到Windows的“ inetsrv”文件夹中。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句