wcf-security - 无需在客户端安装的 WCF 证书身份验证

标签 wcf-security digital-certificate

我们的设置包括一个 WCF 服务和一些我们编写的客户端。一些客户端包括 Silverlight 应用程序,而其他客户端包括 Web 和 Windows 应用程序。

我(认为)我想根据 X.509 证书对客户端进行身份验证。通常,您会在客户端上安装私钥来加密(也称为数字签名)消息。服务器可以使用客户端的公钥对其进行解密,以确保消息未被更改并证明消息来 self 们期望的人(也称为经过身份验证的人)。

我不想在客户端机器上安装证书。部署起来很麻烦,我们不能真的要求我们的客户去做。前几天我正在和某人交谈,他建议将证书嵌入客户端程序集,阅读并使用它。那可能吗?

如果有人能给我举个例子就太好了。

提前致谢

大卫

最佳答案

是的,你可以加载X509certificate2通过传递带有密码的证书字节数组

var certificate = new X509Certificate2(theByteArrary, "password");

要获取证书字节数组,只需将.pfx文件中的内容复制粘贴即可,该文件是.cer(公钥)和.pvk(私钥)的组合

然后您可以通过以下方式将此证书加载到您的客户端:

var channelFactory = new ChannelFactory<IYourService>();
channelFactory.Credentials.ClientCertificate.Certificate = 
                                         clientCertificate;

如果您使用自动生成的客户端代理,或者您更喜欢通过 .config 文件配置证书,那么您可能需要查看 this from codeproject

关于wcf-security - 无需在客户端安装的 WCF 证书身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1310945/

相关文章:

wcf - 如何提供 PIN 以编程方式访问智能卡?

c# - WCF:缓存 SSL 数据

java - 如何使用 Java 从 Word 文件中检索数字签名数据?

WCF 服务 - SOAP header 中的安全性

wcf - 使用 Windows 身份验证在 IIS 中托管 WCF 服务,无需匿名访问

c# - 使用 WCF 的身份验证服务

c# - 在创建具有安装屏蔽限制的应用程序时,有没有办法通过 Smartscreen 过滤器?

excel - 以编程方式确定 Excel 文件 (.xls) 是否包含宏

.net - 如何解码 CSR 文件?

java - Linux 中的 SMTP/POP3 客户端