gpt4 book ai didi

c# - 在 C# 中使用代理连接到 FTPS

转载 作者:太空狗 更新时间:2023-10-30 01:30:02 24 4
gpt4 key购买 nike

我的以下代码在没有代理的情况下在我的计算机上运行良好。但是在客户端服务器中,他们需要向 FTP 客户端(FileZilla)添加代理才能访问 FTP。但是当我添加代理时,它说

SSL cannot be enabled when using a proxy.

FTP 代理

var proxyAddress = ConfigurationManager.AppSettings["ProxyAddress"];
WebProxy ftpProxy = null;
if (!string.IsNullOrEmpty(proxyAddress))
{
var proxyUserId = ConfigurationManager.AppSettings["ProxyUserId"];
var proxyPassword = ConfigurationManager.AppSettings["ProxyPassword"];
ftpProxy = new WebProxy
{
Address = new Uri(proxyAddress, UriKind.RelativeOrAbsolute),
Credentials = new NetworkCredential(proxyUserId, proxyPassword)
};
}

FTP 连接

var ftpRequest = (FtpWebRequest)WebRequest.Create(ftpAddress);
ftpRequest.Credentials = new NetworkCredential(
username.Normalize(),
password.Normalize()
);

ServicePointManager.ServerCertificateValidationCallback +=
(sender, cert, chain, sslPolicyErrors) => true;

ServicePointManager.Expect100Continue = false;

ftpRequest.Method = WebRequestMethods.Ftp.ListDirectory;
ftpRequest.EnableSsl = true;
//ftpRequest.Proxy = ftpProxy;
var response = (FtpWebResponse)ftpRequest.GetResponse();

最佳答案

.NET 框架确实不支持通过代理的 TLS/SSL 连接。

您必须使用第 3 方 FTP 库。

另请注意,您的代码未使用“隐式”FTPS。它使用“显式”FTPS。 Implicit FTPS is not supported by .NET framework要么。


例如 WinSCP .NET assembly ,你可以使用:

// Setup session options
SessionOptions sessionOptions = new SessionOptions
{
Protocol = Protocol.Ftp,
HostName = "example.com",
UserName = "user",
Password = "mypassword",
FtpSecure = FtpSecure.Explicit, // Or .Implicit
};

// Configure proxy
sessionOptions.AddRawSettings("ProxyMethod", "3");
sessionOptions.AddRawSettings("ProxyHost", "proxy");

using (Session session = new Session())
{
// Connect
session.Open(sessionOptions);

var listing = session.ListDirectory(path);
}

对于 SessionOptions.AddRawSettings 的选项, 请参阅 raw settings .

(我是 WinSCP 的作者)

关于c# - 在 C# 中使用代理连接到 FTPS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48004666/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com