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 に答える