C# FTP SLL
public static bool ValidateServerCertificate(object sender,X509Certificate certificate,
X509Chain chain,
SslPolicyErrors sslPolicyErrors)
{
return true;
}
static void Main(string[] args)
{
string ftpfullpath = "ftp://172.16.0.25:6877/";
FtpWebRequest ftp = (FtpWebRequest)FtpWebRequest.Create(ftpfullpath);
ftp.Credentials = new NetworkCredential("username", "password");
ftp.EnableSsl = true;
ftp.UseBinary = true;
ftp.UsePassive = true;
ftp.Method = "LIST";
ServicePointManager.ServerCertificateValidationCallback = ValidateServerCertificate;
{
FtpWebResponse response = (FtpWebResponse)ftp.GetResponse();
Console.WriteLine(response.BannerMessage);
Stream responseStream = response.GetResponseStream();
StreamReader str = new StreamReader(responseStream);
Console.WriteLine("Read: " + str.ReadToEnd());
response.Close();
}
Console.ReadLine();
}
Hej,
Når jeg bruger dette script op mod en af mine SSL FTP server får jeg denne besked:
The remote server returned an error: 227 Entering Passive Mode (192,168,0,37,207,230)
ved linjen:
FtpWebResponse response = (FtpWebResponse)ftp.GetResponse();
FTP serverens ip addresse er 192.168.0.37 men skal tilgåes via 172.16.0.25 - Kan ikke tilgåes direkte på sin ip, blocket i firewallen for det.
Hvis jeg bruger FileZilla client, så funger det det fint nok og jeg kan fint download og upload til serveren osv.
Hvis jeg connecter i mod nogen af de andre servere som også er SLL hvor den kan tilgåes direkte er der ingen problemer. Håber nogen kan hjælpe :)