1

可能重复:
当用户名错误时,为什么 GetErrorMessage 返回“错误密码”?

由于GetErrorMessage为无效密码和用户名提供了相同的字符串,因此我决定使用 GetLastError(),因为它对每个都有单独的错误。

但是,如果用户名不正确,它仍然会给我代码 12014?(密码错误)但有一个单独的错误代码:ERROR_INTERNET_INCORRECT_USER_NAME - 12013

这不应该工作还是这也是有意的?

谢谢。

try
{
   pConnect = sess->GetFtpConnection(host, wronguserName, password, port, FALSE );
   err= GetLastError(); <---RETURNS INVALID PASSWORD with the wrong username??
}

catch (CInternetException* pEx) //incorrect user name displays incorrect password?
{
      TCHAR sz[1024];
      pEx->GetErrorMessage(sz, 1024);
      printf("ERROR!  %s\n", sz);
      pEx->Delete();
}
4

2 回答 2

4

该函数只能告诉您 FTP 服务器返回的内容。已安全编码的 FTP 服务器说密码错误。该函数无法为您提供与 FTP 服务器告诉它的结果不同的结果。:-P

对于区分无效用户名和无效密码(顽皮、顽皮)的 FTP 服务器,我确信该函数也会返回服务器返回的内容,在这种情况下可能是错误 12013

于 2010-01-30T02:17:13.603 回答
3

无论您的帐户或密码是否错误,FTP 服务器都会回复相同的“无效”消息。这是为了防止网络钓鱼有效的用户名。

于 2010-01-30T02:17:57.230 回答