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

Posted

技术标签:

【中文标题】登录失败:未知用户名或密码错误。使用 C# 的 FTP【英文标题】:Logon failure: unknown user name or bad password. FTP with C# 【发布时间】:2013-03-04 14:28:46 【问题描述】:

我正在尝试访问我们网络之外的 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 资源管理器中获取文件,我可以正常登录并检索文件。之后,我的应用程序可以正常访问该文件。我读过这个以前的堆栈线程

Logon failure: unknown user name or bad password? But I am using the right username and password

我将它添加到我的配置中

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

这并没有改变。我也尝试将我的域添加到凭据构造函数中,但这也不能解决任何问题。此连接需要作为客户端应用程序完成,因此上一篇文章与我的有点不同。任何帮助将不胜感激。谢谢

编辑

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

【问题讨论】:

服务器是否使用windows认证?如果是这样,您需要域\用户名格式 您的密码中有特殊字符吗? @JMK 是的,我的密码有“@”和“!”在里面 @Joe 的建议有效吗?如果没有,请尝试在您的密码前加上@。您的用户名是否也有任何(例如反斜杠)? @JMK。乔斯的建议没有奏效。我的用户名没有反斜杠或除“!”之外的其他特殊字符和 '@'。在密码前面加上 @ 会得到相同的结果。 【参考方案1】:

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

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

【讨论】:

添加域名或计算机名称会得到相同的结果【参考方案2】:

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

【讨论】:

以上是关于登录失败:未知用户名或密码错误。使用 C# 的 FTP的主要内容,如果未能解决你的问题,请参考以下文章

Web 请求错误“登录失败:未知用户名或密码错误”。有任何想法吗?

登录失败:未知用户名或密码错误

StreamWriter 抛出 IOException 登录失败:未知用户名或密码错误

共享打印机出现“输入网络密码、登录失败、未知的用户名或密码错误!

登录失败:Windows Server 2012 R2 上用于远程 PS 脚本执行的未知用户名或密码错误

win7访问其他Win7共享提示登录失败:未知的用户名或密码错误