自托管wcf服务器 - 从文件而不是证书存储加载证书

wuh*_*a24 5 wcf certificate

我目前正在开发一个wcf服务器,并希望从文件/资源​​而不是证书存储加载我的证书,以便更轻松地部署.任何想法如何做到这一点?

谢谢你的帮助!

Yua*_*uan 9

假设您使用的是双工通道,可以从文件中加载证书,如下所示:

//Load certificate file with private key
var certificate = new X509Certificate2("c:\certificate.pfx", "password");

//Configure your server by to use certificate, for example:
var host = new ServiceHost(typeof(YourService), 
                         new Uri("Your service's uri"));
host.Credentials.ServiceCertificate.Certificate = certificate;

//configure your server to accept client's certificate , accept all
//certificate in this case, or you can assign it to the public key file
host.Credentials.ClientCertificate.Authentication.CertificateValidationMode
                           = X509CertificateValidationMode.None;
Run Code Online (Sandbox Code Playgroud)

在客户端的代码中,加载证书与上面相同

//configure your client to use certificate
var channelFactory = new ChannelFactory<IYourService>();
channelFactory.Credentials.ClientCertificate.Certificate = 
                                             clientCertificate;

//configure your client to accept server's certificate, 
//again, for simplicity, just accept any server's certificate
channelFactory.Credentials.ServiceCertificate.Authentication.CertificateValidationMode
                           = X509CertificateValidationMode.None;
Run Code Online (Sandbox Code Playgroud)

我认为从这一点开始你应该没问题.请记住,如果从文件加载,则必须加载由pvk2pfx.exe生成的.pfx文件,它具有私钥和公钥.否则WCF会对查找私钥的位置感到困惑.


小智 0

我认为这就是您正在寻找的: http://www.codeproject.com/KB/WCF/wcfcertificates.aspx