Sending files over FTPS (secure) using WinSCP .NET assembly
c#, ftp, ftps, winscp, winscp-net
Solution
If you have a code for FTP, all you need to add to connect to a well-behaved FTPS (FTP over TLS/SSL) server is to set the `SessionOptions.FtpSecure`:
// Set up session options
SessionOptions sessionOptions = new SessionOptions
{
Protocol = Protocol.Ftp,
HostName = "ftp.example.com",
UserName = "username",
Password = "password",
// Enable FTPS in explicit mode, aka FTPES
FtpSecure = FtpSecure.Explicit,
};
using (Session session = new Session())
{
// Connect
session.Open(sessionOptions);
// Your code
}
The `TlsHostCertificateFingerprint` is needed only, if your server certificate is not signed by a trusted authority.
The `TlsClientCertificatePath` is needed only, if your server requires authenticating with a client certificate.
Easiest is to configure your session in WinSCP GUI and have it generate a code template for you. That's actually how I got the above code.
Problem
What is required to send out files to a server with WinSCP (.NET assembly) using FTPS (Secure)? I've been looking at their documentation and am not really clear on certain aspects like `TlsHostCertificateFingerprint` or `TlsClientCertificatePath`. I've been able to send out files via FTP and SFTP with no problem, but this whole thing just eludes me.