Bonjour,
J'ai un problème avec le support SSL des librairies FTP d'ASP.NET. Je fais mes tests avec FileZilla FTP Server, avec lequel j'ai créer un serveur FTP distant avec SSL. Lorsque la connexion s'établi, le processus gèle au Welcome Message.
Voici le code VB.NET:
La connexion est possible sans SSL si j'ajuste le code et le serveur FTP. Mais malgré le fait que j'ai enabler le SSL, si je regarde le log FTP du serveur, il ne semble pas envoyer la commande "AUTH SSL" comme il devrait:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55 Public Function listeFichiers(ByVal serveurCible As String, _ ByVal identifiant As String, _ ByVal motDePasse As String) As Array Dim monResponseStream As Stream = Nothing Dim monStreamReader As StreamReader = Nothing Dim monResultat As Array = Nothing ' Instanciation de deux Uri qui vont contenir les chemins source et destination Dim monUriServeur As New System.Uri(serveurCible) ' Vérification de la validité de l'Uri du fichier sur le serveur FTP If Not (monUriServeur.Scheme = Uri.UriSchemeFtp) Then MessageBox.Show("L'Uri du serveur FTP n'est pas valide", _ "Une erreur est surevnue", _ MessageBoxButtons.OK, MessageBoxIcon.Warning) 'Si Uri non valide, arrêt du listage Return monResultat Exit Function End If Try ' Création de la requête de récupération de la liste des fichiers Dim maRequeteListe As FtpWebRequest = CType(WebRequest.Create(monUriServeur), FtpWebRequest) maRequeteListe.Method = WebRequestMethods.Ftp.ListDirectoryDetails ' Vérification de la présence des identifiants d'un compte, si aucun alors ' la connexion se fait en mode anonyme If Not identifiant.Length = 0 Then Dim monCompteFtp As New NetworkCredential(identifiant, motDePasse) maRequeteListe.Credentials = monCompteFtp End If maRequeteListe.EnableSsl = True ' Récupération de la liste de fichiers Dim maResponseListe As FtpWebResponse = CType(maRequeteListe.GetResponse, FtpWebResponse) ' Placement du flux provenant du serveur dans un streamreader monStreamReader = New StreamReader(maResponseListe.GetResponseStream, Encoding.Default) ' Lecture du stream reader (...) ' Gestion des exceptions Catch ex As UriFormatException MessageBox.Show(ex.Message) Catch ex As WebException MessageBox.Show(ex.Message) Finally ' Fermeture des différents flux utilisés If monResponseStream IsNot Nothing Then monResponseStream.Close() End If If monStreamReader IsNot Nothing Then monStreamReader.Close() End If End Try Return monResultat End Function
(000006) 2009-02-18 21:11:42 - (not logged in) (127.0.0.1)> Connected, sending welcome message...
(000006) 2009-02-18 21:11:42 - (not logged in) (127.0.0.1)> 220-FileZilla Server version 0.9.30 beta
(000006) 2009-02-18 21:11:42 - (not logged in) (127.0.0.1)> 220-written by Tim Kosse (Tim.Kosse@gmx.de)
(000006) 2009-02-18 21:11:42 - (not logged in) (127.0.0.1)> 220 Please visit http://sourceforge.net/projects/filezilla/
(000006) 2009-02-18 21:12:42 - (not logged in) (127.0.0.1)> 421 Login time exceeded. Closing control connection.
Le serveur FTP s'attend à avoir quelque chose et ASP.NET ne le lui fourni pas. Si je me log sur le serveur avec un client FTP, le log se comporte plutot comme ça:
(000007) 2009-02-18 21:22:06 - (not logged in) (127.0.0.1)> Connected, sending welcome message...
(000007) 2009-02-18 21:22:06 - (not logged in) (127.0.0.1)> 220-FileZilla Server version 0.9.30 beta
(000007) 2009-02-18 21:22:06 - (not logged in) (127.0.0.1)> 220-written by Tim Kosse (Tim.Kosse@gmx.de)
(000007) 2009-02-18 21:22:06 - (not logged in) (127.0.0.1)> 220 Please visit http://sourceforge.net/projects/filezilla/
(000007) 2009-02-18 21:22:07 - (not logged in) (127.0.0.1)> SSL connection established
(000007) 2009-02-18 21:22:07 - (not logged in) (127.0.0.1)> USER sa
(000007) 2009-02-18 21:22:07 - (not logged in) (127.0.0.1)> 331 Password required for sa
(000007) 2009-02-18 21:22:07 - (not logged in) (127.0.0.1)> PASS ********
(000007) 2009-02-18 21:22:07 - sa (127.0.0.1)> 230 Logged on
Es-ce que quelqu'un peu m'aiguiller vers une piste?
Merci
Partager