![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
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);
...