Connexion FTPs DOT NET [Résolu]

Messages postés
2
Date d'inscription
jeudi 3 janvier 2008
Dernière intervention
12 décembre 2008
- - Dernière réponse : Szyl
Messages postés
1
Date d'inscription
jeudi 26 février 2009
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. :)
Afficher la suite 

Votre réponse

3 réponses

Meilleure réponse
Messages postés
32
Date d'inscription
mardi 5 décembre 2006
Dernière intervention
6 mars 2009
3
Merci
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)

Merci shogun_60 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 97 internautes ce mois-ci

Commenter la réponse de shogun_60
Messages postés
1
Date d'inscription
jeudi 26 février 2009
Dernière intervention
29 novembre 2009
1
Merci
Bon je déterre un peu ce sujet, mais puisque j'ai aussi dû m'amuser à transcrire, si ca peut faire gagner du temps, je vous poste la fonction:

//Fonction pour accepter le certificat SSL
        public bool myCertificateValidation(Object sender, X509Certificate cert, X509Chain chain, SslPolicyErrors Errors)
        {
            return true;
        }


Et on appelle la fonction ainsi:

ServicePointManager.ServerCertificateValidationCallback = new RemoteCertificateValidationCallback(myCertificateValidation);


Bon courage à tous ;)
Commenter la réponse de Szyl
Messages postés
2
Date d'inscription
jeudi 3 janvier 2008
Dernière intervention
12 décembre 2008
0
Merci
Et bien écoute, nickel ! J'ai juste eu à me débrouiller pour faire l'équivalence en C# et ça passe tout seul ! Merci bien ! :)
Commenter la réponse de MrDup

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.