您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

.NET FtpWebRequest是否支持隐式(FTPS)和显式(FTPES)?

.NET FtpWebRequest是否支持隐式(FTPS)和显式(FTPES)?

据我所知,当前(.NET 2.0和3.5)的FtpWebRequest版本仅支持显式SSL。

实际上,.NET 2.0当前不支持隐式SSL,仅支持显式。我们将考虑在以后的版本中添加它。

JonCole- MSDN论坛上的 MSFTModerator

如果需要同时使用隐式和显式TLS / SSL,则必须尝试使用??第三方FTP / SSL组件之一。以下代码使用了我们的Rebex FTP / SSL,摘自教程页

客户端以通常的非保护方式连接到FTP服务器,通常将端口21分配给FTP协议。当需要使用SSL保护连接时,将初始化SSL协商,确保控制连接的安全,并保护所有后续通信。

// Create an instance of the Ftp class. 
Ftp ftp = new Ftp();

// Connect securely using explicit SSL. 
// Use the third argument to specify additional SSL parameters. 
ftp.Connect(hostname, 21, null, FtpSecurity.Explicit);

// Connection is protected Now, we can log in safely. 
ftp.Login(username, password);

显式保护意味着可以随时保护连接。如果您不知道在连接时是否不需要保护,则可能要使用普通的未加密FTP协议进行连接,然后再保护连接。

Ftp ftp = new Ftp();

// Connect to the server with no protection. 
ftp.Connect(hostname, 21);

// Upgrade connection to SSL. 
// This method also accepts an argument to specify SSL parameters. 
ftp.Secure();

// Connection is protected Now, we can log in safely. 
ftp.Login(username, password);

FTPS协议最初是由IANA分配的。连接到该端口后,将立即开始SSL协商,并确保控制连接的安全。所有数据连接也以相同的方式隐式地得到保护。这类似于HTTPS使用的方法

IETF不赞成使用此方法,不建议使用。Rebex FTP / SSL支持与旧服务器进行互操作,但是强烈建议尽可能使用显式保护。

Ftp ftp = new Ftp();

// Connect securely using implicit SSL. 
// Use the third argument to specify additional SSL parameters. 
ftp.Connect(hostname, 990, null, FtpSecurity.Implicit);

// Connection is protected Now, we can log in safely. 
ftp.Login(username, password);

您可以从rebex.net/ftp-ssl.net/下载该组件。

dotnet 2022/1/1 18:20:32 有522人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶