HttpWebRequest - Login

  • VB.NET

Es gibt 1 Antwort in diesem Thema. Der letzte Beitrag () ist von Kangaroo.

    HttpWebRequest - Login

    Hey,
    ich versuche schon seit mehreren Tagen einen Login auf verschiedenen Seiten durchzuführen, jedoch scheitere ich immer an der selben Stelle. Mein Code für einen YT-Login:

    VB.NET-Quellcode

    1. Dim cookieCon As New CookieContainer()
    2. Dim post As String = "continue=http%3A%2F%2Fwww.youtube.com%2Fsignin%3Faction_handle_signin%3Dtrue%26nomobiletemp%3D1%26hl%3Dde_DE%26next%3D%252F&service=youtube&uilel=3&dsh=-352958991582691902&ltmpl=sso&hl=de_DE&ltmpl=sso&GALX=P66D5eE2h-8&pstMsg=1&dnConn=https%3A%2F%2Faccounts.youtube.com&timeStmp=&secTok=&Email=USERNAME&Passwd=PASSWORD&signIn=Anmelden&PersistentCookie=yes&rmShown=1"
    3. Dim byteArr() As Byte = Encoding.UTF8.GetBytes(post)
    4. Dim request As HttpWebRequest = CType(HttpWebRequest.Create("https://accounts.google.com/ServiceLoginAuth"), HttpWebRequest)
    5. request.CookieContainer = cookieCon
    6. request.Method = "POST"
    7. request.UserAgent = "Mozilla/5.0 (Windows NT 6.1; rv:7.0.1) Gecko/20100101 Firefox/7.0.1"
    8. request.ContentType = "application/x-www-form-urlencoded"
    9. request.ContentLength = byteArr.Length
    10. Dim dataStream As Stream = request.GetRequestStream()
    11. dataStream.Write(byteArr, 0, byteArr.Length)
    12. dataStream.Close()
    13. Dim response As HttpWebResponse = CType(request.GetResponse(), HttpWebResponse)
    14. cookieCon.Add(response.Cookies)
    15. dataStream = response.GetResponseStream()
    16. Dim reader As StreamReader = New StreamReader(dataStream)
    17. Dim result As String = reader.ReadToEnd()
    18. reader.Close()
    19. dataStream.Close()
    20. response.Close()

    Das Problem ist, wie auch bei allen anderen Seiten, die ich getestet habe, dass im Quelltext dann folgende Meldung erscheint:

    Die Cookie-Funktion Ihres Browsers ist deaktiviert. Bitte aktivieren Sie die Funktion.

    und ich somit nicht eingeloggt bin..woran liegt das? Ich kann den Fehler in meinem Code nicht finden..

    Kraizy schrieb:

    Ich kann den Fehler in meinem Code nicht finden..

    Schätze mal es liegt daran , dass Du gleich einen HttpPost absetzt ohne die Login-Seite vorher aufgerufen zu haben. Normalerweise bekommst Du beim ersten Aufruf schon 1 Sessioncookie verpasst den Du bei weiteren Aufrufen ( auch dem POST) nutzen musst.

    Versuchs mal in der Reihenfolge:
    - cookiContainer anlegen
    - httpRequest auf LoginSeite mit diesem cookieContainer (sessioncookie wirfd aufgenommen)
    - httpPost mit dem gleichen Container