首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >具有IIS SSL证书的OpenPOP.POP3

具有IIS SSL证书的OpenPOP.POP3
EN

Stack Overflow用户
提问于 2010-11-17 21:25:20
回答 2查看 2.8K关注 0票数 3

我正在使用OpenPOP,我正在尝试从办公室中的exchange服务器检索邮件。这是我的代码

代码语言:javascript
复制
 popClient.Connect(host.Host, (int)host.Port, (bool)host.Ssl);
 popClient.Authenticate(host.Username, host.Password);

Prodlem是在iis 7中创建的SSL证书,它不是有效的证书。我有什么方法可以绕过它吗?

根据验证过程,它会显示错误远程证书无效。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-11-18 06:18:05

是的,有一种方法。它需要对POPClient类进行一些小的代码更改。

步骤1:将用于对服务器进行身份验证的SslStream实例的构造函数替换为允许您提供用于验证远程方提供的证书的委托的构造函数。因此请替换

代码语言:javascript
复制
SslStream stream = new SslStream(clientSocket.GetStream(), false); 

在POPClient类中,Connect方法使用

代码语言:javascript
复制
SslStream stream = new SslStream(clientSocket.GetStream(), false, new RemoteCertificateValidationCallback(ValidateServerCertificate), null);

第2步:提供委托调用的方法,并通过返回always true强制验证远程证书:

代码语言:javascript
复制
public static bool ValidateServerCertificate(object sender, X509Certificate certificate, X509Chain chain, SslPolicyErrors sslPolicyErrors)
{         
    return true;  // force the validation of any certificate
}

有关此主题的更多详细信息,请查看msdn上提供的文档。

票数 6
EN

Stack Overflow用户

发布于 2010-11-19 20:42:54

我是OpenPop上的开发人员之一。我没有想过这有什么用处,但看到这是一个问题,当我有时间的时候,我会把它放到主代码中,而不是在它的其他部分工作。到目前为止,它在我的待办事项清单上。

/Kasper (foens)

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4204785

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档