Wyrzucanie z sesji na www

problemy z tworzeniem programów do obsługi sieci, internetu, e-mail itp..

Wyrzucanie z sesji na www

Nowy postprzez mate006 » czwartek, 19 grudnia 2019, 19:42

Witam serdecznie

Loguję się na stronie wykorzystując TWebBrowser

KOD cpp:     UKRYJ  
void __fastcall TForm1::Login(TObject *Sender)
{
        IHTMLDocument2 *HTMLDoc = NULL;
        IPersistFile *PersistFile = NULL;

        if(SUCCEEDED(Web->Document->QueryInterface(IID_IHTMLDocument2, (LPVOID*)&HTMLDoc)))
        {
                IHTMLElementCollection *pAll = NULL;
                if(SUCCEEDED(HTMLDoc->get_all(&pAll)))
                {
                        long len=0;
                        pAll->get_length(&len);

                        for(int i=0;i<len; i++)
                        {
                                IDispatch *pDisp = NULL;
                                if(SUCCEEDED(pAll->item( (TVariant)i, (TVariant)i, &pDisp)))
                                {
                                  if(pDisp)
                                  {
                                                IHTMLInputElement *pInput = NULL;
                                                pDisp->QueryInterface(IID_IHTMLInputElement, (LPVOID*)&pInput);

                                                if(pInput)
                                                {
                                                        wchar_t * nazwa;

                                                        pInput->get_name(&nazwa);

                                                        if (WideString(nazwa) == WideString("login") )
                                                        {
                                                                pInput->put_value ("login");
                                                        }

                                                        if (WideString(nazwa) == WideString("password") )
                                                        {
                                                                pInput->put_value("haslo");
                                                       
                                                                IHTMLFormElement *HTMLForm = NULL;
                                                                pInput->get_form(&HTMLForm);

                                                                if (HTMLForm)
                                                                {
                                                                        HTMLForm->submit();  //logowanie

                                                                        HTMLForm->Release();
                                                                }
                                                        }

                                                        pInput->Release();
                                                }
                                                pDisp->Release();
                                        }
                                }
                        }
                }
                pAll->Release();

                HTMLDoc->Release();
        }
}
 


Po zalogowaniu, za pomocą ReadFileURL(const AnsiString &Url), chce pobrać dane ze strony jednak automatycznie wylogowuje mnie ze strony. Czy jest jakiś sposób aby mnie nie wylogowywało?
Avatar użytkownika
mate006
Intelektryk
Intelektryk
 
Posty: 145
Dołączył(a): wtorek, 2 marca 2010, 14:12
Podziękował : 7
Otrzymał podziękowań: 0
System operacyjny: Windows 7 Premium 64
Kompilator: Embarcadero® C++Builder® XE
Gadu Gadu: 0
    WindowsFirefox

Re: Wyrzucanie z sesji na www

Nowy postprzez polymorphism » sobota, 28 grudnia 2019, 22:05

Skąd wiesz, że się zalogowałeś?
C++ Reference - opis wszystkich klas STL-a i funkcji C.
Avatar użytkownika
polymorphism
Doświadczony Programista ● Moderator
Doświadczony Programista ● Moderator
 
Posty: 2263
Dołączył(a): piątek, 19 grudnia 2008, 13:04
Podziękował : 0
Otrzymał podziękowań: 210
System operacyjny: Windows 8.1
Windows 10
Linux Mint 19
Kompilator: Visual Studio
Visual Studio Code
MSYS2 (MinGW, clang)
g++
clang
Gadu Gadu: 0
    UbuntuFirefox

Re: Wyrzucanie z sesji na www

Nowy postprzez mate006 » piątek, 3 stycznia 2020, 11:36

Ponieważ gdy po zalogowaniu odświeżam stronę w komponencie TWebBrowser to mam dostęp do mojego konta.

Kwestia jest taka że jak robię tak samo na innej hurtowni to wszystko działa. Program się loguje automatycznie i pobiera dane jako zalogowany użytkownik.

Jednak z tą hurtownią po zalogowaniu i wywołaniu ReadFileURL(const AnsiString &Url) automatycznie wylogowuje.
Avatar użytkownika
mate006
Intelektryk
Intelektryk
 
Posty: 145
Dołączył(a): wtorek, 2 marca 2010, 14:12
Podziękował : 7
Otrzymał podziękowań: 0
System operacyjny: Windows 7 Premium 64
Kompilator: Embarcadero® C++Builder® XE
Gadu Gadu: 0
    WindowsChrome

Re: Wyrzucanie z sesji na www

Nowy postprzez polymorphism » piątek, 3 stycznia 2020, 12:16

Aha, czyli problemem nie jest to, że nie możesz się zalogować, tylko chodzi Ci o to, by program pamiętał, że jesteś zalogowany i nie trzeba było za każdym razem się logować. Dobrze zrozumiałem?

Za takie pamiętanie zalogowania odpowiedzialne są ciasteczka lub, jeśli mowa o krótkich sesjach, unikalne identyfikatory, które serwer nadaje przy odpowiedzi na pierwsze żądanie (czasami są widoczne w adresie URL, vide adres tego forum). Tutaj szukałbym problemu. Użyj jakiegoś sniffera i podejrzyj komunikację ze problematyczną stroną.



PS. nomen omen nie mogę zmusić FF, żeby zapamiętał, że jestem zalogowany na tym forum. Za każdym razem muszę się logować ;/
C++ Reference - opis wszystkich klas STL-a i funkcji C.
Avatar użytkownika
polymorphism
Doświadczony Programista ● Moderator
Doświadczony Programista ● Moderator
 
Posty: 2263
Dołączył(a): piątek, 19 grudnia 2008, 13:04
Podziękował : 0
Otrzymał podziękowań: 210
System operacyjny: Windows 8.1
Windows 10
Linux Mint 19
Kompilator: Visual Studio
Visual Studio Code
MSYS2 (MinGW, clang)
g++
clang
Gadu Gadu: 0
    UbuntuFirefox

Re: Wyrzucanie z sesji na www

Nowy postprzez mate006 » wtorek, 11 lutego 2020, 13:19

Sprawdziłem. Sesja zapamiętana jest w pliku cookies. Jednak jak chce pobrać źródło strony to automatycznie ten plik usuwa, albo nie jest dostępny dla ReadFileURL.
Avatar użytkownika
mate006
Intelektryk
Intelektryk
 
Posty: 145
Dołączył(a): wtorek, 2 marca 2010, 14:12
Podziękował : 7
Otrzymał podziękowań: 0
System operacyjny: Windows 7 Premium 64
Kompilator: Embarcadero® C++Builder® XE
Gadu Gadu: 0
    WindowsChrome


Powrót do Aplikacje sieciowe

Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zalogowanych użytkowników i 1 gość

cron