【问题标题】:SFTP or FTPS when sending via C#.Net通过 C#.Net 发送时的 SFTP 或 FTPS
【发布时间】:2012-07-11 15:52:48
【问题描述】:

我读了这篇文章:

这两者是非常不同的,尽管它们都旨在 服务于相同的目的。 SFTP 使用单通道传输和 接收所有相关数据,而 FTPS 使用另一个通道 是针对数据动态决定的。 FTPS 经常遇到问题 通过防火墙,因为它不知道正在被访问的端口 由数据使用,并且无法允许流量通过该端口。 FTPS 以文本格式发送消息,允许人们阅读日志和 确定会话期间发生了什么。这是不可能的 SFTP,因为消息不是文本,而是二进制。

阅读更多:FTPS 和 SFTP 之间的区别 |之间的区别| FTPS 与 SFTP http://www.differencebetween.net/technology/internet/difference-between-ftps-and-sftp/#ixzz20KUGWr00

我不想假设任何事情,因为如果我错了,这只会让我的工作更加困难,但是当我像这样通过 C#/.Net4 发送文件时:

  var request = (FtpWebRequest) WebRequest.Create(FtpUrl + filename);
    request.Method = WebRequestMethods.Ftp.UploadFile;

    var secureString = new SecureString();
    foreach (var b in Encoding.Default.GetBytes(FtpPassword))
      secureString.AppendChar((char) b);
    request.Credentials = new NetworkCredential(FtpUsername, secureString);
    request.EnableSsl = true;

是使用 SFTP 还是 FTPS?由于 EnableSsl,我假设 FTPS 如文章所示。

如果不是 SFTP,我可以改为 SFTP 吗?我在通过防火墙发送时遇到问题。

谢谢!

【问题讨论】:

    标签: c# sftp ftps


    【解决方案1】:

    SFTP 使用 SSH 传输文件。如果您在远程计算机上运行 ssh,则可以将其更改为此。我不确定 C# 是否支持它。据此:http://social.msdn.microsoft.com/Forums/en-US/netfxnetcom/thread/817b4f71-7e88-4b62-b48a-8a5edca800fd/ 答案是否定的。

    FTPS 正在将 SSL 添加到 FTP。有点像 HTTPS 是 HTTP 之上的 SSL。

    你的代码肯定在使用 FTPS。

    您的防火墙问题可能在这里解释:http://en.wikipedia.org/wiki/Ftps#Firewall_incompatibilities

    【讨论】:

    • 我就是这么想的,tyvm :)
    • C# 没有对 SFTP 的内置支持,但是有几个第三方库,有些是免费的,可以实现它。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-09-29
    • 2011-04-09
    • 2010-12-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-27
    相关资源
    最近更新 更多