登录失败:未知用户名或错误的密码.c# FTP

本文关键字:错误 密码 FTP 失败 未知 用户 登录 | 更新日期: 2023-09-27 18:02:01

我试图访问一个FTP服务器,是我们的网络之外获得一个CSV文件。下面是我使用的代码

string XMLPATH = @"''server'file.csv";
FileWebRequest request = (FileWebRequest)FileWebRequest.Create(XMLPATH);
request.Credentials = new NetworkCredential("admin", "password");
FileWebResponse response = request.GetResponse() as FileWebResponse;
Stream stReader = response.GetResponseStream();

当我通过我的控制台应用程序运行这个时,我得到了这个消息。

Logon failure: unknown user name or bad password

如果我去服务器位置在Windows资源管理器中获取文件,我能够很好地登录并检索文件。之后,我的应用程序就可以正常访问文件了。我读取了前面的堆栈线程

登录失败:未知用户名或错误密码?但是我使用了正确的用户名和密码

我把这个添加到我的config

<system.net>
 <defaultProxy useDefaultCredentials="false">
  <proxy usesystemdefault="True"/>
 </defaultProxy>
</system.net>

这改变不了什么。我还尝试将我的域添加到凭据构造函数中,但这也不能解决任何问题。这个连接需要作为客户机应用程序来完成,所以前一篇文章与我的略有不同。任何帮助都将非常感激。由于

编辑

因为我很好奇,我对Windows资源管理器的调用和我的应用程序的请求运行了一个Wireshark跟踪。当使用资源管理器时,它使用正确的凭据发送请求。但是,当我使用该应用程序时,它会以我的计算机的登录名(也就是我的用户id)发送请求。为什么当我在请求中发送请求凭据时,它仍然默认为登录用户?我必须为此配置一个设置吗?

登录失败:未知用户名或错误的密码.c# FTP

我怀疑您需要指定一个域(或计算机名):

new NetworkCredential("admin", "password", domainOrComputerName)

我可以通过在运行应用程序的服务器上创建一个本地用户来解决这个问题。该用户的设置方式与对FTP服务器具有读权限的用户完全相同