Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

WinInet http auth [D1, D2, D3, D4, D5, D6, D7, Win95/98, WinME, NT4, Win2k, WinXP]


Aven_ ©   (2005-10-20 14:49:00) 

как ввести пароль в стандартную форуму HTTP AUTH?

делаю так:
hConnect := InternetConnect(hInet, '127.0.0.1', INTERNET_DEFAULT_HTTPS_PORT, 'имя', 'пароль', INTERNET_SERVICE_HTTP, 0, 0);

но это не прокатывает. как подругому это можно реализовать?


Aven_   (2005-10-21 16:10:00) [1]

isasa естественно :)

seeker спасибо! Нужно было всего лишь еще раз HTTPSendRequest сделать :)


isasa   (2005-10-21 10:58:00) [2]

Меня терзают сомнения. А вот это делаем?

hInet:=InternetOpen(PChar(Application.ExeName), INTERNET_OPEN_TYPE_PRECONFIG, nil, nil, INTERNET_FLAG_DONT_CACHE);


seeker   (2005-10-21 09:28:00) [3]

приблизительно так:

hConnect := InternetConnect(hI, aURLc2.lpSzHostName,
               aURLc2.nPort, aURLc2.lpszUserName, aURLc2.lpszPassword,
              INTERNET_SERVICE_HTTP, 0, 0);
...
if aURLc2.nPort = 443 then
     dwflags := INTERNET_FLAG_SECURE or  INTERNET_FLAG_IGNORE_CERT_CN_INVALID or INTERNET_FLAG_IGNORE_CERT_DATE_INVALID
   else
     dwflags := 0;

   dwFlags := dwFlags or INTERNET_FLAG_RELOAD;
...

   hFile := HTTPOpenRequest(hConnect, PChar(RequestMethod),
   aURLc2.lpSzUrlPath, HTTP_VERSION, nil, nil, dwflags, 0);
...
   if not HTTPSendRequest(hFile, pchar(extraHeaders), length(extraHeaders), aURLc2.lpSzExtraInfo, aURLc2.dwExtraInfoLength) then begin
     dwError := getlasterror;
     if dwError = 12045 then begin
       //try again if Certificate is invalid
       InternetQueryOption (hFile, INTERNET_OPTION_SECURITY_FLAGS,  @dwFlags, lpdwBufferLength);
       dwFlags := dwFlags or SECURITY_FLAG_IGNORE_UNKNOWN_CA;
       InternetSetOption (hFile, INTERNET_OPTION_SECURITY_FLAGS, @dwFlags, sizeof (dwFlags) );
       if not HTTPSendRequest(hFile, pchar(extraHeaders), length(extraHeaders), aURLc2.lpSzExtraInfo, aURLc2.dwExtraInfoLength)
       then dwError := getlasterror;
     end;
   end;

может где-то ошибся тк выдирал из работающего кода из блокнота(делфя щас не установленна).


Aven_   (2005-10-20 21:59:00) [4]

ХЭЭЭЭЛП МИ!!!!


Aven_   (2005-10-20 16:41:00) [5]

некатит, да и разницы никакой нетут :)
выдает ошибку: ERROR_INTERNET_INVALID_CA

Если зайти на сервер через TWebBrowse и залогинется в окошке что он выдаст, то через WinInet страничка нормально получается. Так вот как реализовать ввод пароля? Или автоматизировать TWebBrowser чтобы он окно не выдавал а можно было самому ввести пароль без диалога.


isasa   (2005-10-20 16:01:00) [6]

А так?

var
   login : string;
   pass : string;
...
  login :='xxxxx';
  pass :='xxxxx';
...
hURL:=InternetConnect(hInet, PChar(sServ), INTERNET_DEFAULT_HTTPS_PORT,
         Pchar(login), PChar(pass), INTERNET_SERVICE_HTTP, 0, 0);
...


Наверх

Титульная страница Поиск, карта сайта Написать письмо