SFTP, FTP or FTPS?
I'm a bit confused, because title says 'SFTP', tag 'FTP' and answer body 'FTPS'. They are not the same.
FTP - is the oldest one. Plain file transfer protocol run over unsecured communication channel.
FTPS (or FTP/SSL) is FTP run over TLS/SSL secured communication channel. TLS/SSL channel intialization can be done in flavours called 'explicit' or 'implicit'.
See for more info on TLS/SSL implicit and explicit modes[
^].
SFTP - another, completely unrelated file transfer protocol. SFTP stands for SSH File Transfer protocol.
More info can be found here:
http://www.rebex.net/kb/secure-ftp/default.aspx[
^]
API support
FTP - supported via FtpWebRequest included in .NET
FTPS - implicit - supported in FtpWebRequest in .NET
FTPS - explicit - not support by .NET out of the box. You'll need a third party support.
SFTP - not support by .NET out of the box. You'll need a third party support.
For FTP I would suggest trying
Rebex FTP/SSL[
^] - it supports FTP, FTP/SSL implicit and FTP/SSL explicit.
For SFTP I would suggest
Rebex SFTP[
^]. If you get both of them you'll be even able to write code which uses both SFTP and FTP using common
IFtp API[
^].
Other options for SFTP was already mentioned on post above.