3

私はこの記事を読みました:

どちらも同じ目的を果たすことを目的としていますが、この2つは互いに大きく異なります。SFTPは単一のチャネルを使用してすべての関連データを送受信しますが、FTPSはデータに対して動的に決定される別のチャネルを使用します。FTPSは、データによって使用されているポートを認識せず、ポートを通過するトラフィックを許可できなかったため、ファイアウォールを通過するときに問題が発生することがよくありました。FTPSはメッセージをテキスト形式で送信し、人々がログを読んでセッション中に何が起こったかを判断できるようにします。メッセージはテキストではなくバイナリであるため、これはSFTPでは不可能です。

続きを読む:FTPSとSFTPの違い| の違い| FTPSとSFTPhttp : //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に変更できますか?ファイアウォールを介した送信に問題があります。

ありがとう!

4

1 に答える 1

6

SFTPはSSHを使用してファイルを転送します。リモートマシンでsshを実行している場合は、これに変更できます。ただし、C#でサポートされているかどうかはわかりません。これによると:http ://social.msdn.microsoft.com/Forums/en-US/netfxnetcom/thread/817b4f71-7e88-4b62-b48a-8a5edca800fd/答えはノーです。

FTPSはFTPにSSLを追加しています。HTTPSのようなものは、HTTPに加えてSSLです。

あなたのコードは間違いなくFTPSを使用しています。

ファイアウォールの問題はおそらくここで説明されています:http://en.wikipedia.org/wiki/Ftps#Firewall_incompatibilities

于 2012-07-11T16:00:51.127 に答える