2010-11-17 7 views
3

J'utilise OpenPOP J'essaye de récupérer le courrier d'un serveur d'échange de bureau. Ceci est mon codeOpenPOP.POP3 avec certificat SSL IIS

popClient.Connect(host.Host, (int)host.Port, (bool)host.Ssl); 
popClient.Authenticate(host.Username, host.Password); 

Prodlem est le certificat SSL est créé dans IIS 7 et nest pas un certificat valide est-il possible pour mon contourner cela.

Il me donne l'erreur certificat à distance est invalide selon la procédure de validation.

Répondre

6

Oui, il y a un moyen. Il nécessite quelques petits changements de code est la classe POPClient.

Étape 1: Remplacez le constructeur de l'instance SslStream utilisé pour authentifier le serveur par un autre qui vous permet de fournir un délégué pour la validation du certificat fourni par la partie distante. donc remplacer

SslStream stream = new SslStream(clientSocket.GetStream(), false); 

de la classe popclient Connect méthode avec

SslStream stream = new SslStream(clientSocket.GetStream(), false, new RemoteCertificateValidationCallback(ValidateServerCertificate), null); 

Étape 2: Fournir la méthode qui est appelée par le délégué et la force de la validation du certificat à distance en retournant toujours vrai:

public static bool ValidateServerCertificate(object sender, X509Certificate certificate, X509Chain chain, SslPolicyErrors sslPolicyErrors) 
{   
    return true; // force the validation of any certificate 
} 

Pour plus de détails sur ce sujet, s'il vous plaît vérifier la documentation disponible sur msdn.

+0

Merci pour la solution rapide, m'a indiqué dans la bonne direction. OpenPOP a maintenant une surcharge qui supporte cela. – JTew

2

Je suis l'un des développeurs sur OpenPop. Je n'avais pas pensé à une utilisation pour cela, mais voir cela est un problème que je vais mettre dans le code principal quand j'ai le temps pour cela et ne pas travailler sur d'autres parties de celui-ci. Il est sur ma liste TODO dès maintenant.

/Kasper (foens)

+0

Ceci a maintenant été implémenté dans la nouvelle version d'OpenPop.NET. – foens

+0

Merci, je viens de l'utiliser aujourd'hui. – JTew