【问题标题】:WCF Certificate Authentication without installing on the Client无需在客户端上安装的 WCF 证书身份验证
【发布时间】:2010-11-21 14:37:07
【问题描述】:

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

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

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

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

提前致谢,

大卫

【问题讨论】:

    标签: wcf-security digital-certificate


    【解决方案1】:

    这是一个建议。也可以调整为使用嵌入式证书。

    http://www.codeproject.com/KB/WCF/wcfcertificates.aspx

    【讨论】:

      【解决方案2】:

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

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

      要获取证书字节数组,您可以简单地将内容复制粘贴到 .pfx 文件中,该文件是 .cer(公钥)和 .pvk(私钥)的组合

      然后您可以通过执行以下操作在您的客户端上加载此证书:

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

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

      【讨论】:

        猜你喜欢
        • 2011-04-09
        • 2013-10-07
        • 1970-01-01
        • 2018-02-12
        • 1970-01-01
        • 1970-01-01
        • 2012-01-03
        • 1970-01-01
        • 2022-06-23
        相关资源
        最近更新 更多