![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
NTLM-аутентификация
И. Павел © (2013-04-09 12:48:00)Здравствуйте.
Пытаюсь пройти NTLM аутентификацию через idHttp:
1. Устанавливаю idHttp.HTTPOptions.hoInProcessAuth = trueи HandleRedirects = true
2. Добавляю обработчики событий idHTTP:
procedure TForm1.IdHTTPAuthorization(Sender: TObject;
Authentication: TIdAuthentication; var Handled: Boolean);
begin
Authentication.Reset;
Authentication.Username := 'user';
Authentication.Password := 'password';
Handled := true;
end;
procedure TForm1.IdHTTPSelectAuthorization(Sender: TObject;
var AuthenticationClass: TIdAuthenticationClass; AuthInfo: TIdHeaderList);
begin
AuthenticationClass := TIdNTLMAuthentication;
end;
3. Обращаюсь к закрытой странице:
IdHTTP.Get(' http://hd-test.ds.local:8080/...');
Если обратиться к ней через браузер и смотреть заголовки, то начинается процесс аутентификации клиент и сервер в несколько ступеней обмениваются заголовками, после чего доступ к нужной странице открывается.
Но через IdHttp аутентификация не начинается и возвращается страница: /ntlmv2 (плюс сессия через куки).
Перехожу к /ntlmv2 (т.к. в браузере этот переход тоже выполняется, вдруг после него начнется ntlm аутентификация):
IdHTTP.Get(' http://hd-test.ds.local:8080/tlmv2');
При этом вызываются обработчики IdHTTPAuthorization и IdHTTPSelectAuthorization, но после этого где-то в недрах инди генерируется исключение EAbort...
Может быть кто-то уже с этим сталкивался.
Подскажите, пожалуйста, как пройти ntlm-аутентификацию.
Медвежонок Пятачок (2013-04-09 13:04:00) [21]xmlhttprequest