myCSharp.de - DIE C# und .NET Community
Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

» Hauptmenü
myCSharp.de
» Startseite
» Forum
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Suche
   » Plugin für Firefox
   » Plugin für IE7
   » Gadget für Vista
» Regeln
» Wie poste ich richtig?
» Datenschutzerklärung
» wbb-FAQ

Mitglieder
» Liste / Suche
» Karte / Anleitung dazu
» Stadt / Anleitung dazu
» Wer ist wo online?

Angebote
» ASP.NET Webspace
» Bücher
» Zeitschriften
   » dot.net magazin
   » visual studio one
» Accessoires

Ressourcen
» .NET-Glossar
» guide to C#
» openbook: C#
» openbook: Visual C#
» openbook: OO
» .NET BlogBook
» MSDN Webcasts
» dotnetjob.de
» Search.Net

Team
» Übersicht
» Wir über uns
» Bankverbindung
» Impressum

» Unsere MiniCity
MiniCity

» Anzeigen
» myCSharp.de Diskussionsforum
Du befindest Dich hier: Community-Index » Diskussionsforum » Entwicklung » Netzwerktechnologien » Wie nutze ich cookies?
Letzter Beitrag | Erster ungelesener Beitrag Druckvorschau | An Freund senden | Thema zu Favoriten hinzufügen

Antwort erstellen
Zum Ende der Seite springen  

Wie nutze ich cookies?

 
Autor
Beitrag « Vorheriges Thema | Nächstes Thema »
EvilDragon EvilDragon ist männlich
myCSharp.de-Mitglied

images/avatars/avatar-663.gif

Dabei seit: 13.09.2007
Beiträge: 34
Entwicklungsumgebung: Visual Studio 2008, PHPEdit
Herkunft: Berlin


EvilDragon ist offline MSN-Passport-Profil von EvilDragon anzeigen

Wie nutze ich cookies?

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Hab jetzt schon einiges gelesen und versucht aber bekomme einfach nichts hin...

ich möchte mich bei einer seite einloggen und dann noch mal eine anfrage bzw url aufrufenund mir den code ausgeben um zu sehen ob ich eingeloggt bin


For public Form1:
HttpWebRequest httpRequest;

code für POST (login):

C#-Code:
public HttpWebRequest GenerateHttpWebRequest_post(string uriString, string postData, string contentType)
        {
            // URI-Objekt erzeugen
            Uri uri = new Uri(uriString);
            // Die ursprüngliche Anfrage erzeugen
            httpRequest = (HttpWebRequest)WebRequest.Create(uri);

            // Die Bytes für die bereits maskierten Daten holen
            byte[] bytes = Encoding.UTF8.GetBytes(postData);

            // Den ContentTyp für die zu versendenden einrichten
            httpRequest.ContentType = contentType; //"application/x-www-form-urlencoded"; bei Formularen
            httpRequest.Method = "POST";

            // Die Länge der zu übermittelnden Daten setzen.
            httpRequest.ContentLength = postData.Length;

            // den Anfrage-Strem holen und ihn in die POST-Daten schreiben.
            using (Stream requestStream = httpRequest.GetRequestStream())
            {
                requestStream.Write(bytes, 0, bytes.Length);
            }
            // Die Anfrage zurückliefern
            return httpRequest;
        }

Mein Button für abfrage:

C#-Code:
string frage = "ownnickname=****&ownpassword=****";
            string contenttype = "application/x-www-form-urlencoded";
            string html = "";
            HttpWebRequest daten;

            daten = GenerateHttpWebRequest_post("http://www.codedragon.de/index.php?do=user_login.php", frage, contenttype);

            using (HttpWebResponse response = (HttpWebResponse)daten.GetResponse())
            {
                // Antwort-Stream anfordern
                Stream responseStream = response.GetResponseStream();
                // Einen Stream-Reader verwenden, der UTF8 versteht.
                using (StreamReader reader = new StreamReader(responseStream, Encoding.UTF8))
                {
                    html = reader.ReadToEnd();
                }
            }

            richTextBox1.Text = html;

            //webBrowser1.Navigate("http://www.codedragon.de", false);

Wie man sieht logge ich mich ein und gebe dann den quellcode in eine RTB wieder, da sehe ich dann auch " erfolgreich eingeloggt werden in 5 sek weitergeleitet"

nun würde ich gern noch mal codedragon.de/index.php abrufen und den code in eine RTB2 einfügen, dann würde ich ja sehen, ob noch das loginform da ist oder das usermenü

die seite nutzt cookies und (glaub) sessions, wie kann ich da mit arbeiten bzw da für sorgen das ich bei der nächsten abfrage eingeloggt bin?

wie könnte der code für ein zweiter aufruf sein?

könnte ich das loogin dann auch so nutzen, das ich bei derwebbrowser-komponente eingeloggt bin?

Sorry diese 3 fragen aber was c#, .net und web angeht ist mir alles neu. komme aus der phpecke

danke in voraus denn bisher wurde hier immer gut geholfen
24.01.2008 18:23 E-Mail | Website | Beiträge des Benutzers | zu Buddylist hinzufügen
EvilDragon EvilDragon ist männlich
myCSharp.de-Mitglied

images/avatars/avatar-663.gif

Dabei seit: 13.09.2007
Beiträge: 34
Entwicklungsumgebung: Visual Studio 2008, PHPEdit
Herkunft: Berlin

Themenstarter Thema begonnen von EvilDragon

EvilDragon ist offline MSN-Passport-Profil von EvilDragon anzeigen

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Mit diesem Code

C#-Code:
private void button2_Click(object sender, EventArgs e)
        {
            string html;
            Uri uri = new Uri("http://www.codedragon.de/index.php");

            HttpWebRequest sessionRequest = (HttpWebRequest)WebRequest.Create("http://www.codedragon.de/index.php");
            sessionRequest.CookieContainer = new CookieContainer();
            HttpWebResponse sessionResponse = (HttpWebResponse)sessionRequest.GetResponse();

            richTextBox1.Text += sessionRequest.CookieContainer.GetCookieHeader(uri)+"\n";

            HttpWebRequest loginRequest = (HttpWebRequest)WebRequest.Create("http://www.codedragon.de/index.php?do=user_login.php");
            loginRequest.Method = "POST";
            loginRequest.CookieContainer = new CookieContainer();
            //loginRequest.CookieContainer = sessionRequest.CookieContainer;
            string postData = "ownnickname=****&ownpassword=****";
            byte[] bytes = Encoding.UTF8.GetBytes(postData);
            loginRequest.ContentType = "application/x-www-form-urlencoded";
            loginRequest.Method = "POST";
            loginRequest.ContentLength = postData.Length;
            using (Stream requestStream = loginRequest.GetRequestStream())
            {
                requestStream.Write(bytes, 0, bytes.Length);
            }

            HttpWebResponse Response = (HttpWebResponse)loginRequest.GetResponse();

            richTextBox1.Text += loginRequest.CookieContainer.GetCookieHeader(uri)+"\n";

            StreamReader ResponseStream = new StreamReader(Response.GetResponseStream());

            html = ResponseStream.ReadToEnd();
            webBrowser1.Document.Body.InnerHtml = html;

        }

Kann ich mich einloggen und erhalte auch eine PHPSession im code, aber die scheint nicht zu stimmen nach dem login steht in der session immer noch guast drin...?
25.01.2008 09:26 E-Mail | Website | Beiträge des Benutzers | zu Buddylist hinzufügen
EvilDragon EvilDragon ist männlich
myCSharp.de-Mitglied

images/avatars/avatar-663.gif

Dabei seit: 13.09.2007
Beiträge: 34
Entwicklungsumgebung: Visual Studio 2008, PHPEdit
Herkunft: Berlin

Themenstarter Thema begonnen von EvilDragon

EvilDragon ist offline MSN-Passport-Profil von EvilDragon anzeigen

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

ich führe mal mein Monolog weiter

C#-Code:
private void button4_Click(object sender, EventArgs e)
        {
            // cookieContainer is used to store the cookies used by the login
            CookieContainer cookieContainer = new CookieContainer();
            string html;
            string loginData = "ownnickname=***&ownpassword=***&submit=Anmelden";

            // First hit the login page
            HttpWebRequest req = (HttpWebRequest)HttpWebRequest.Create("http://www.codedragon.de/index.php?do=user_login.php");
            req.CookieContainer = cookieContainer;
            req.Method = "POST";
            req.ContentType = "application/x-www-form-urlencoded";
            ASCIIEncoding encoding = new ASCIIEncoding();
            byte[] loginDataBytes = encoding.GetBytes(loginData);
            req.ContentLength = loginDataBytes.Length;
            Stream stream = req.GetRequestStream();
            stream.Write(loginDataBytes, 0, loginDataBytes.Length);
            stream.Close();
            HttpWebResponse res = (HttpWebResponse)req.GetResponse();

            // Then grab the content of the desired page
            req = (HttpWebRequest)HttpWebRequest.Create("http://www.codedragon.de/index.php?do=personal/meeting.php&pos=|21");
            req.CookieContainer = cookieContainer;
            req.Method = "GET";
            res = (HttpWebResponse)req.GetResponse();
            StreamReader sr = new StreamReader(res.GetResponseStream());
            html = sr.ReadToEnd();

            webBrowser1.Document.Body.InnerHtml = html;
        }

Mit dem Code klappt alles so weit nur bei der neuen Abfrage kann ich mein CookieContainer nicht hinzufügen, da hängt sich das programm immer auf, also:

req.CookieContainer = cookieContainer;

Weise ich einem Container anders einen Container hinzu?
25.01.2008 10:12 E-Mail | Website | Beiträge des Benutzers | zu Buddylist hinzufügen
EvilDragon EvilDragon ist männlich
myCSharp.de-Mitglied

images/avatars/avatar-663.gif

Dabei seit: 13.09.2007
Beiträge: 34
Entwicklungsumgebung: Visual Studio 2008, PHPEdit
Herkunft: Berlin

Themenstarter Thema begonnen von EvilDragon

EvilDragon ist offline MSN-Passport-Profil von EvilDragon anzeigen

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

und der letzte beitrag zu meinem Monolog *löl*

Die Lösung:

C#-Code:
private void button6_Click(object sender, EventArgs e)
        {
            Uri uri = new Uri("http://www.codedragon.de");
            CookieContainer cookieContainer = new CookieContainer();
            string html;
            string loginData = "ownnickname=****&ownpassword=****&submit=Anmelden";

            HttpWebRequest sessionRequest = (HttpWebRequest)WebRequest.Create(uri);
            sessionRequest.CookieContainer = new CookieContainer();
            cookies = sessionRequest.CookieContainer;
            HttpWebResponse sessionResponse = (HttpWebResponse)sessionRequest.GetResponse();
            sessionResponse.Close(); // sehr wichtig!

            richTextBox1.Text += cookies.GetCookieHeader(uri) + "\n";

            // Einloggen
            HttpWebRequest req = (HttpWebRequest)HttpWebRequest.Create("http://www.codedragon.de/index.php?do=user_login.php");
            req.CookieContainer = cookies;
            req.Method = "POST";
            req.ContentType = "application/x-www-form-urlencoded";
            ASCIIEncoding encoding = new ASCIIEncoding();
            byte[] loginDataBytes = encoding.GetBytes(loginData);
            req.ContentLength = loginDataBytes.Length;
            Stream stream = req.GetRequestStream();
            stream.Write(loginDataBytes, 0, loginDataBytes.Length);
            stream.Close();
            HttpWebResponse res = (HttpWebResponse)req.GetResponse();

            // Eine Unterseite z.B. Profil
            req = (HttpWebRequest)HttpWebRequest.Create("http://www.codedragon.de/index.php?do=personal/meeting.php&pos=|21");
            req.CookieContainer = cookies;
            req.Method = "GET";
            res = (HttpWebResponse)req.GetResponse();
            StreamReader sr = new StreamReader(res.GetResponseStream());
            html = sr.ReadToEnd();

            webBrowser1.Document.Body.InnerHtml = html;
        }

man muss den response auch schließen
25.01.2008 13:28 E-Mail | Website | Beiträge des Benutzers | zu Buddylist hinzufügen
Baumstruktur | Brettstruktur       | Top 
myCSharp.de | Forum Der Startbeitrag ist älter als 2 Jahre.
Der letzte Beitrag ist älter als 2 Jahre.
Antwort erstellen


© Copyright 2003-2010 myCSharp.de-Team. Alle Rechte vorbehalten. 03.09.2010 03:12