Почему GetLastError() (НЕ GetReturnMessage) возвращает «неверный пароль», если имя пользователя неверно?

Возможный дубликат:
Почему 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();
}

person T.T.T.    schedule 30.01.2010    source источник
comment
По той же причине, что и в прошлый раз?   -  person GManNickG    schedule 30.01.2010
comment
Упс! Не сложил два и два... должно быть, была длинная пятница.   -  person T.T.T.    schedule 01.02.2010


Ответы (2)


Функция может только сообщить вам, что возвращает FTP-сервер. FTP-сервер, будучи защищенным кодом, говорит, что это неправильный пароль. Функция ничего не может сделать, чтобы дать вам результат, отличный от того, что сообщает FTP-сервер. :-П

Я уверен, что для FTP-серверов, которые делают различие между неверными именами пользователей и неверными паролями (непослушный, непослушный), функция также просто вернет вам то, что возвращает сервер, что в этом случае может быть ошибкой 12013.

person Chris Jester-Young    schedule 30.01.2010

FTP-сервер отвечает одним и тем же «недействительным» сообщением независимо от того, ошиблись ли вы в своей учетной записи или пароле. Это сделано для предотвращения фишинга действительных имен пользователей.

person Kornel Kisielewicz    schedule 30.01.2010