0

我正在尝试访问我们网络外部的 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)发送。为什么当我在请求中发送请求凭据时,它仍然默认为登录用户?我必须为此配置一个设置吗?

4

2 回答 2

0

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

new NetworkCredential("admin", "password", domainOrComputerName)
于 2013-03-04T14:33:25.877 回答
0

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

于 2013-03-04T20:58:45.543 回答