Connexion FTPs DOT NET [Résolu]

MrDup 2 Messages postés jeudi 3 janvier 2008Date d'inscription 12 décembre 2008 Dernière intervention - 12 déc. 2008 à 14:22 - Dernière réponse : Szyl 1 Messages postés jeudi 26 février 2009Date d'inscription 29 novembre 2009 Dernière intervention
- 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
shogun_60 32 Messages postés mardi 5 décembre 2006Date d'inscription 6 mars 2009 Dernière intervention - 12 déc. 2008 à 15:16
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

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 124 internautes ce mois-ci

Commenter la réponse de shogun_60
Szyl 1 Messages postés jeudi 26 février 2009Date d'inscription 29 novembre 2009 Dernière intervention - 29 nov. 2009 à 15:16
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
MrDup 2 Messages postés jeudi 3 janvier 2008Date d'inscription 12 décembre 2008 Dernière intervention - 12 déc. 2008 à 17:26
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.