Connexion FTPs DOT NET

Résolu
MrDup Messages postés 2 Date d'inscription jeudi 3 janvier 2008 Statut Membre Dernière intervention 12 décembre 2008 - 12 déc. 2008 à 14:22
Szyl Messages postés 1 Date d'inscription jeudi 26 février 2009 Statut Membre Dernière intervention 29 novembre 2009 - 29 nov. 2009 à 15:16
Bien le bonjour :)

Alors voilà, j'ai besoin de faire une gestion d'échange de données avec un serveur FTP sécurisé par un certificat SSL. Mon problème est que quand j'exécute ma méthode "GetResponse" de mon objet FtpWebRequest, je récupère une exception "Le certificat distant n'est pas valide selon la procédure de validation."

Voici une copie de la console serveur :

(000003) 12/12/2008 14:20:26 - (not logged in) (192.168.1.151)> Connected, sending welcome message...
(000003) 12/12/2008 14:20:26 - (not logged in) (192.168.1.151)> 220-FileZilla Server version 0.9.29 beta
(000003) 12/12/2008 14:20:26 - (not logged in) (192.168.1.151)> 220 Bienvenue sur le serveur de test.
(000003) 12/12/2008 14:20:26 - (not logged in) (192.168.1.151)> AUTH TLS
(000003) 12/12/2008 14:20:26 - (not logged in) (192.168.1.151)> 234 Using authentication type TLS
(000003) 12/12/2008 14:20:27 - (not logged in) (192.168.1.151)> SSL connection established
(000003) 12/12/2008 14:20:27 - (not logged in) (192.168.1.151)> disconnected.


Et voici une copie du code utilisé :

// Instanciation de l'objet de requête et configuration de l'adresse.
Uri uri = new Uri("ftp://" + adresse);
FtpWebRequest ftpReq = (FtpWebRequest)FtpWebRequest.Create(uri);

ftpReq.Method = WebRequestMethods.Ftp.ListDirectory;
ftpReq.EnableSsl = true;
ftpReq.KeepAlive = false;


ServicePoint sp = ftpReq.ServicePoint;
//sp.ConnectionLimit = 1;
//sp.ClientCertificate = ftpReq.ClientCertificates[0].
ICredentials logMdp = new NetworkCredential(login, mdp);
ftpReq.Credentials = logMdp;


FtpWebResponse reponse = (FtpWebResponse)ftpReq.GetResponse();
return reponse.BannerMessage;


Merci d'avance. :)

3 réponses

shogun_60 Messages postés 30 Date d'inscription mardi 5 décembre 2006 Statut Membre Dernière intervention 6 mars 2009 1
12 déc. 2008 à 15:16
Salut,

Essayes de rajouter cette fonction :



Private




Function ValidateCertificate(ByVal sender AsObject, ByVal certificate As X509Certificate, ByVal chain As X509Chain, ByVal sslPolicyErrors As SslPolicyErrors) AsBoolean



'Return True pour forcer l'acceptation du certificat







Return
True






End



Function





Et appel la de cette manière avant de d'authentifier sur le serveur :

ServicePointManager.ServerCertificateValidationCallback = New RemoteCertificateValidationCallback(AddressOf ValidateCertificate)
3
Rejoignez-nous