Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Сети > idHttp: Авторизация на web-server?


Автор: pave 7.4.2007, 15:14
кто подскажет как залогиниться на webserver используя Indy idHTTP(d7)

с чем имеем дело 
в IE:
при первом входе на сервер вводится Login & Password (они у меня есть)
после авторизации сервер выдает страницу для Upload File (XLS)
в explorere всё прекрасно работает - 
файл отсылается и адрес слегка меняется
программа(отслеживающяя post commands IE) показала что
вместе с файлом отсылаются параметры (Multi-Form-data)

все это было решено с помощью idHTTP & idMultipart:
кудабы я не вводил параметры Login & Pasw
server требует авторизацию
хотя fiddler показывает что она нужна только в первом входе

??? вчем тут дело может быть ???
Спасибо за любую подсказку....

Автор: aktuba 9.4.2007, 08:10
Скорее всего дело в том, что ты не привязал IdCookieManager...

Автор: pave 10.4.2007, 14:34
Цитата

Скорее всего дело в том, что ты не привязал IdCookieManager

Спасибо но нет ...
"Печение" - на месте..
Дело еще в чем то.

Автор: aktuba 10.4.2007, 15:31
тогда поставь Id.HTTPOptions.BasicAuthorization в True...

Автор: pave 10.4.2007, 16:39
я уточню что
redirect
cookie
все http options
уже испробованны...

Автор: aktuba 10.4.2007, 16:50
Цитата

я уточню что
redirect
cookie
все http options
уже испробованны... 


Виноват, не правильно указал: IdHTTP.Request.BasicAuthentication =True. Должно помочь...

P.S.: ну и все остальное тоже надо включить =))))

Автор: pave 10.4.2007, 16:53
Вот что происходит:
Я логинюсь в TWebBrowser через .Navigate(www...?login=...&psw=...&........
a после уже пытаюсь на сайт с помощью Indy Аплоадить файл
и request stream data загрузить в TWebBrowser
тут то меня и просят опять зарегестрироваться.

может ли server сервер различать - 
программу связи (т.е : 
залогинился в WB так от туда и грузи (тоже с Indy)
) ??????

но нужна именно совместная работа Postera и Viewera

Автор: aktuba 12.4.2007, 16:12
Цитата

Вот что происходит:
Я логинюсь в TWebBrowser через .Navigate(www...?login=...&psw=...&........
a после уже пытаюсь на сайт с помощью Indy Аплоадить файл
и request stream data загрузить в TWebBrowser
тут то меня и просят опять зарегестрироваться.

может ли server сервер различать - 
программу связи (т.е : 
залогинился в WB так от туда и грузи (тоже с Indy)
) ??????

но нужна именно совместная работа Postera и Viewera 


Реализуемо, но сложно. Тебе придется сохранять и подставлять заголовки запросов...

Автор: pave 14.4.2007, 09:48
Цитата

сохранять и подставлять заголовки запросов


речь идет о rawheaders???
если это сложно то можно еще немного о том 
что нужно делать и с чем 
а то я непонимаю куда копать...
спасибо.

Автор: aktuba 14.4.2007, 17:01
Подставить заголовки в IdHTTP не проблема. А вот в TWebBrowser - врядли получится так просто...

Автор: pave 14.4.2007, 17:47
Цитата

Подставить заголовки в IdHTTP

я пр понимаю - цель : часть хеда в которой прописана кука?
и цеплять индейский кук к activ-wb незя.
или это заморочка которую лучше както обойти?

Автор: Matematik 14.4.2007, 17:49
Цитата(aktuba @  14.4.2007,  17:01 Найти цитируемый пост)
А вот в TWebBrowser - врядли получится так просто... 

Ничего сложного. У метода Navigate2 есть соответствующий параметр.

Автор: pave 14.4.2007, 17:56
припоминаю

но я всегда присваивал ему emptyparametr
для автоматического создания заголовка

но как в хед wb назначить хед инди
так же как и в пост
а будет ли тогда wb работоть с куком инди
т.е server определит что обменивается инф-й с одним и темже?

Автор: aktuba 14.4.2007, 21:35
Цитата

но как в хед wb назначить хед инди
так же как и в пост
а будет ли тогда wb работоть с куком инди
т.е server определит что обменивается инф-й с одним и темже? 


Ты не понял, надо копировать из одного в другое перед отправкой. 

Автор: pave 15.4.2007, 08:38
вот моя схема:

CookieMan на форме привязан к idHttp
http.get(http://host+action) //только для получения heada и кука
...
http.request
http.get( /action?login...&..., idResp ) // авторизация 
авторизация проходит
но в idresp теперь находится index страницы
...
раньше я передавал idResp в WB
и любовался набором из пустых фреймов index страницы
-->
теперь на сколько я понимаю чтобы отобразить в WB
мне нужно сделать вот что
url := адрес IndexPage;
head := http.response.rawheader;
wb.navigate2(url...head...)

правильно?

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)