Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > EmbeddedWB и авторизация


Автор: sneJok 7.9.2010, 20:48
Доброго дня! Такой вопрос. Прохожу авторизацию на сайте через EmbeddedWB в своей программе, при этом, завершив работу с ней - эта авторизованная сессия остается и в IE. Есть ли способы выполнять вход на сайт через EWB, но в обход IE (таким образом чтобы в IE не было и намека на эту самую авторизацию со стороны моей программы) ?

Автор: halfhope 9.9.2010, 12:53
Попробуй авторизацию через инди (idhttp) туда idCookieManager добавь. Потом просто почистить в этом менеджере надо и всё) Или самый тупой метод - удалять куки физически.http://vvy.me/12-delphi-ochishhaem-cookies-v-twebbrowser.html
Вот еще как вариант (удаляет куки в браузере)
Код

procedure EmptyIECache;
Var
    lpEntryInfo : PInternetCacheEntryInfo;
    hCacheDir   : LongWord;
    dwEntrySize : LongWord;
    dwLastError : LongWord;
Begin
    dwEntrySize := 0;
    FindFirstUrlCacheEntry( NIL, TInternetCacheEntryInfo( NIL^ ), dwEntrySize );
    GetMem( lpEntryInfo, dwEntrySize );
    hCacheDir := FindFirstUrlCacheEntry( NIL, lpEntryInfo^, dwEntrySize );
    If ( hCacheDir <> 0 ) Then
        DeleteUrlCacheEntry( lpEntryInfo^.lpszSourceUrlName );
    FreeMem( lpEntryInfo );
    Repeat
        dwEntrySize := 0;
        FindNextUrlCacheEntry( hCacheDir, TInternetCacheEntryInfo( NIL^ ), dwEntrySize );
        dwLastError := GetLastError();
        If ( GetLastError = ERROR_INSUFFICIENT_BUFFER ) Then Begin
            GetMem( lpEntryInfo, dwEntrySize );
            If ( FindNextUrlCacheEntry( hCacheDir, lpEntryInfo^, dwEntrySize ) ) Then
                DeleteUrlCacheEntry( lpEntryInfo^.lpszSourceUrlName );
            FreeMem(lpEntryInfo);
        End;
    Until ( dwLastError = ERROR_NO_MORE_ITEMS );
End;


Автор: XperT 13.9.2010, 16:43
Цитата(sneJok @ 7.9.2010,  20:48)
Доброго дня! Такой вопрос. Прохожу авторизацию на сайте через EmbeddedWB в своей программе, при этом, завершив работу с ней - эта авторизованная сессия остается и в IE. Есть ли способы выполнять вход на сайт через EWB, но в обход IE (таким образом чтобы в IE не было и намека на эту самую авторизацию со стороны моей программы) ?

EmbeddedWB использует движок ИЕ и его папки. В обход не получится.

Автор: sneJok 14.9.2010, 21:09
halfhope, благодарю за советы. С Indy по этому поводу не разбирался, но похоже надо будет повозиться. 

XperT, воот. Вот это очень плохо smile . Может быть что-нибудь посоветуете из альтернатив, не использующих примочки IE ?

Автор: XperT 15.9.2010, 15:28
Цитата(sneJok @ 14.9.2010,  21:09)
halfhope, благодарю за советы. С Indy по этому поводу не разбирался, но похоже надо будет повозиться. 

XperT, воот. Вот это очень плохо smile . Может быть что-нибудь посоветуете из альтернатив, не использующих примочки IE ?

Я сам уже обыскался. Найти ничего не удалось. Для ИЕ всё что нашел - это стандартный TWebBrowser и EmbeddedWB. На другие движки (Gecko, WebKit) нормальных компонент с хорошим функционалом нету :(

Автор: sneJok 2.10.2010, 15:39
Благодарю всех за ответы. Воспользовался компонентом Indy - idHTTP. Еще бы разобраться, чтобы он не подвешивал все приложение, когда работает...

Автор: N0m 2.10.2010, 17:12
вот что я нашел когда серфил инет
http://narod.ru/disk/25573187000/TGeckoBrowser-15012010.rar.html

Автор: sneJok 2.10.2010, 22:17
Так, Антифриз помог.

N0m, благодарю, обязательно гляну на досуге.

Вопрос решен, всем спасибо!

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