Webseite einloggen via Webrequest



  • Hallo, gibt ja vieles Snippets dazu im Netz und hab das auch schonmal gemacht. Aber bei einer aktuellen Seite von mir klappts nicht!
    Hab auch Zwischenabfragen drin, sind kommentiert!

    CookieContainer ^myCookie = gcnew CookieContainer();
    	CookieCollection ^Cookies= gcnew CookieCollection(); 
    
    	String ^logindata = "login=1&username=User&password=Passwort";
    	HttpWebRequest^ request = dynamic_cast<HttpWebRequest^>(WebRequest::Create("http://steambans.com/recover.php"));
    	request->UserAgent = "User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.8.1.1) Gecko/20061204 Firefox/2.0.0.1";
    	request->Method = "POST";
    	request->CookieContainer = myCookie; 
    	request->ContentType = "application/x-www-form-urlencoded";
    	array<Byte>^ databyte = gcnew array<Byte>(4096);
    	System::Text::UTF8Encoding ^utf8 = gcnew System::Text::UTF8Encoding();
    	databyte = utf8->GetBytes(logindata);
    	request->ContentLength = databyte->Length;
    	Stream ^stream = request->GetRequestStream();
    	stream->Write(databyte, 0, databyte->Length);
    	stream->Close();
    
    	HttpWebResponse ^response = dynamic_cast<HttpWebResponse^>(request->GetResponse());
    	myCookie->Add(response->Cookies);
    	Cookies->Add(response->Cookies);
    
    	/*Stream ^dataStream = response->GetResponseStream();
    	StreamReader ^reader = gcnew StreamReader( dataStream );
    	String ^responseFromServer = reader->ReadToEnd();
    	this->Antwort = responseFromServer;*/ //Wenn ich den Code von Antwort ausgeben lasse, kann ich im Quellcode lesen das ich eingeloggt bin!
    
    	request = dynamic_cast<HttpWebRequest^>(WebRequest::Create("http://steambans.com/ban.php"));
    	request->CookieContainer = myCookie;
    	MessageBox::Show(request->CookieContainer->Count.ToString()); //Es werden die benötigten zwei Cookies übergeben
    	request->UserAgent = "User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.8.1.1) Gecko/20061204 Firefox/2.0.0.1";
    	response = dynamic_cast<HttpWebResponse^>(request->GetResponse());
    	Stream ^dataStream = response->GetResponseStream();
    	StreamReader ^reader = gcnew StreamReader( dataStream );
    	String ^responseFromServer = reader->ReadToEnd();
    	this->Antwort = responseFromServer; //Nichtmehr eingeloggt, warum??
    

    Ja also in der Zwischenabfrage die auskommentiert ist kann ich also rauslesen das ich eingeloggt bin! Wenn ich nun eine Unterseite aufrufe, bin ich nichtmehr eingeloggt, obwohl die Cookies anscheinend übergeben wurden?

    Hab die Webseite analysiert, ich verstehs nicht! 😞

    Vielen Vielen Vielen Lieben DANK
    für den/die der mir helfen will/kann.

    Gruß QuelleAcht



  • Konnte das ganze umgehen indem ich mich direkt auf die Unterseite eingeloggt hab!
    Lösungen trozdem erwunscht!
    Es muss doch irgendwas mit den Cookies sein?

    gruß


Anmelden zum Antworten