如何在 WCF 客户端中接受自签名 SSL 证书?

2023-11-23

这可能是一个愚蠢的问题,但我就是找不到答案。

我想做的事: 我有一个由 IIS 托管的 WCF 服务。它工作完美,我可以访问 wsdl,我有服务器的自签名证书等。我想从 WPF 客户端调用此服务。

问题是,由于我有自签名证书,因此在调用服务时出现以下异常:无法与权限“localhost”建立 SSL/TLS 安全通道的信任关系。

如果我从浏览器访问该站点(或服务),则没有问题,因为浏览器会警告我有关证书的信息,并让我选择查看该页面。但 WPF 客户端只是抛出异常。

我不想完全关闭身份验证过程,我只是想为用户提供忽略此警告的选项(就像浏览器一样)。

任何人都可以为此提供一些代码吗?如果您遇到有关此问题的详细教程,那就太棒了。 (看,我发现的教程的问题是缺乏细节)


以下是使 WCF 客户端接受任意证书所需的最少代码量。这是不安全。仅用于测试。如果这段代码变得狂暴并吃掉了你的小猫,请不要怪我。

ServicePointManager.ServerCertificateValidationCallback +=
            new System.Net.Security.RemoteCertificateValidationCallback(EasyCertCheck);

回电:

bool EasyCertCheck(object sender, X509Certificate cert,
        X509Chain chain, System.Net.Security.SslPolicyErrors error)
{
    return true;
}

代码无耻地从最无帮助的答案中提取出来是否可以强制 WCF 测试客户端接受自签名证书?

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 WCF 客户端中接受自签名 SSL 证书? 的相关文章

随机推荐