【发布时间】:2025-12-12 11:20:03
【问题描述】:
我在使用密码中带有特殊字符“§”的 FtpWebRequest 时遇到问题。 代码如下所示:
FtpWebRequest reqFTP = (FtpWebRequest)FtpWebRequest.Create(new Uri("ftp://ftphost"));
reqFTP.Method = WebRequestMethods.Ftp.ListDirectory;
reqFTP.UsePassive = true;
reqFTP.EnableSsl = false;
reqFTP.Timeout = 60000;
reqFTP.UseBinary = false;
reqFTP.Credentials = new NetworkCredential("user", "pa§");
FtpWebResponse response = (FtpWebResponse)reqFTP.GetResponse();
GetResponse() 方法失败并显示“530 用户无法登录”。 使用 FileZilla 可以登录。
我使用 Wireshark 跟踪网络流量并注意到以下内容:
- FileZilla 将密码转换为“pa\302\247”,尝试登录但失败。之后 FileZilla 使用密码“pa\247”重试连接成功。
- FtpWebRequest 将密码转换为“pa\302\247”,尝试登录也失败并抛出异常。
如何强制 FtpWebRequest 将密码转换为“pa\247”而不是“pa\302\247”?
谢谢。
【问题讨论】:
标签: c# ftp passwords character ftpwebrequest