使用 WinSCP .NET 程序集通过 FTPS(安全)发送文件

Sending files over FTPS (secure) using WinSCP .NET assembly

使用 FTPS(安全)将文件发送到带有 WinSCP(.NET 程序集)的服务器需要什么?

我一直在查看他们的文档,但对 TlsHostCertificateFingerprintTlsClientCertificatePath 等某些方面并不是很清楚。

我已经能够通过 FTP 和 SFTP 毫无问题地发送文件,但这整件事让我望而却步。

如果您有 FTP 的代码,您只需添加即可连接到性能良好的 FTPS(FTP over TLS/SSL)服务器设置 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
}

仅当您的服务器证书未由可信机构签署时才需要 TlsHostCertificateFingerprint

仅当您的服务器需要使用客户端证书进行身份验证时才需要 TlsClientCertificatePath


最简单的方法是 configure your session in WinSCP GUI and have it generate a code template 为您服务。这实际上就是我得到上面代码的方式。