C# 登录失败:未知用户名或错误密码。带C的FTP#

C# 登录失败:未知用户名或错误密码。带C的FTP#,c#,ftp,C#,Ftp,我正在尝试访问网络外部的FTP服务器以获取CSV文件。这是我正在使用的代码 string XMLPATH = @"\\server\file.csv"; FileWebRequest request = (FileWebRequest)FileWebRequest.Create(XMLPATH); request.Credentials = new NetworkCredential("admin", "password"); FileWebResponse response = request

我正在尝试访问网络外部的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资源管理器中转到服务器位置获取文件,我就可以正常登录并检索文件。在那之后,我的应用程序可以很好地访问该文件。我读了上一个堆栈线程

我把它添加到我的配置中

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

这并没有改变什么。我还尝试将我的域添加到凭据构造函数中,但这也无法修复任何问题。这个连接需要作为客户端应用程序来完成,所以上一篇文章与我的有点不同。任何帮助都将不胜感激。谢谢

编辑


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

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


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

服务器是否使用windows身份验证?如果需要域\用户名格式,密码中是否有特殊字符?@JMK yes我的密码有“@”和“!”在这方面,@Joe的建议有效吗?如果没有,请尝试在密码前加一个@。您的用户名是否也有(如反斜杠)?@JMK。乔的建议不起作用。除了“!”之外,我的用户名没有反斜杠或其他特殊字符和“@”。将@放在密码前面会得到相同的结果。添加域名或计算机名会得到相同的结果
new NetworkCredential("admin", "password", domainOrComputerName)