2015-08-30 132 views
1

我尝试了所有我能想到的事情。我正在尝试从FTP服务器获取目录列表。我可以从FileZilla登录和列出/下载。获取错误530使用FtpWebRequest连接时未登录

我的密码,看起来像这样(字母改变):

c0dlWTRBOZc= 

我一直在使用Normalize()尝试和不使用它。

它在GetResponse()行错误。

下面是代码:

FtpWebRequest request = (FtpWebRequest)WebRequest.Create(thisConnection.remoteFTP_URI); 
request.KeepAlive = true; 
request.UsePassive = true; 
request.UseBinary = true; 
request.Method = WebRequestMethods.Ftp.ListDirectory; 
request.Credentials = new NetworkCredential(thisConnection.userName.Normalize(),thisConnection.passWord.Normalize()); 
FtpWebResponse response = (FtpWebResponse)request.GetResponse(); 

我用这完全一样的代码没有问题,其他的FTP服务器。我没有直接控制服务器,所以更改密码或其他服务器设置会有问题。

谢谢你的帮助!

+0

[启用'FtpWebRequest'日志记录](http://stackoverflow.com/q/9664650/850848)并将日志包含到您的问题中。包括FileZilla日志作为比较(实际上是日志文件,而不是来自GUI的消息日志)。 –

回答

1

您的密码字符串看起来像base64编码。

FileZilla在其配置文件(sitemanager.xml)中使用的实际形式是什么。

所以我的猜测是你已经从sitemanager.xml复制了编码密码​​,并且你试图在FtpWebRequest中用它作为文字密码。

请确保您使用实际的文字密码。如果您不记得它,请使用一些base64解码器。
你会​​。

+0

圣牛......你完全正确。我直接从filezilla中导出xml文件进行复制和粘贴。我不知道它是如何工作的。我真的应该抓住这一点,非常感谢你的锐利眼睛!在我的辩护中(这里没有什么),filezilla过去并不以这种方式存储它们,或者至少我有一个带有纯文本密码的xml的旧版本,包括这个。 –

+0

不客气。是的,最近在3.10.2-rc2(2015-02-25)中,FileZilla切换到了base-64编码密码。 –

相关问题