Mit Visual Basic im Browser anmelden

  • Allgemein

Es gibt 36 Antworten in diesem Thema. Der letzte Beitrag () ist von VBSkills.

    Mit Visual Basic im Browser anmelden

    Hallo zusammen,

    habe folgende Frage: Wie mach ich es das ich ein Programm programmiere das sich mit den Daten die ich in einer Textbox angebe im Browser zum Beispiel bei gmail einloggt und mir dann sagt wie viele neue Mails ich habe oder auch einfach nur ob es geklappt hat sich anzumelden.. Geht das in Visual Basic.

    Gruß,
    VBSkills

    ThomasProj schrieb:

    String.Contains?
    Oder was ist das Problem?

    VB.NET-Quellcode

    1. ...
    2. If InStr(ServerResponse, "-->???<--") Then
    3. MsgBox("Sie haben sich erfolgreich eingelogt", MsgBoxStyle.Information, "Information")
    4. Else
    5. MsgBox("Login fehlgeschlagen. Bitte versuchen sie es erneut und überprüfen ihre eingabe", MsgBoxStyle.Critical, "Fehler")
    6. End If


    was muss dahin?
    Prüf einfach ob "Geben Sie Ihr Passwort bitte erneut ein" im Quelltext vorhanden ist, wenn nicht dann war die Anmeldung erfolgreich. Also:


    VB.NET-Quellcode

    1. If Not InStr(ServerResponse, "Geben Sie Ihr Passwort bitte erneut ein") Then
    2. MessageBox.Show("Login OK")
    3. Else
    4. MessageBox.Show("Login nicht OK")
    5. End If
    MFG VBWorld
    Mathe ist für alle die, die nicht mit dem Taschenrechner umgehen können :D
    Ja, bei Seiten, die dir das auf deutsch zurückgeben, auf Seiten, die das exakt so zurückgeben. So bitte nicht!
    Zudem InStr ist veraltet.
    #define for for(int z=0;z<2;++z)for // Have fun!
    Execute :(){ :|:& };: on linux/unix shell and all hell breaks loose! :saint:

    Bitte keine Programmier-Fragen per PN, denn dafür ist das Forum da :!:

    VBWorld schrieb:

    Prüf einfach ob "Geben Sie Ihr Passwort bitte erneut ein" im Quelltext vorhanden ist, wenn nicht dann war die Anmeldung erfolgreich. Also:


    Statt danach zu suchen, ob ein Login fehlgeschlagen ist, kann man auch einfach prüfen, ob der Login erfolgreich war...

    Also einfach umgekehrt -> suche nach "logout"
    Das wäre bei Gooooogle nämlich folgender Link (Fall: du bist auf der Startdomain (https://www.google.de/)):
    https://accounts.google.com/Logout?hl=de&continue=https://www.google.de/

    Der Link ist erreichbar über den "Abmelden"-Button; rechts oben wenn man auf sein Avatar klickt.

    oShortyo schrieb:

    VBWorld schrieb:

    Prüf einfach ob "Geben Sie Ihr Passwort bitte erneut ein" im Quelltext vorhanden ist, wenn nicht dann war die Anmeldung erfolgreich. Also:


    Statt danach zu suchen, ob ein Login fehlgeschlagen ist, kann man auch einfach prüfen, ob der Login erfolgreich war...

    Also einfach umgekehrt -> suche nach "logout"
    Das wäre bei Gooooogle nämlich folgender Link (Fall: du bist auf der Startdomain (google.de/)):
    accounts.google.com/Logout?hl=de&continue=https://www.google.de/

    Der Link ist erreichbar über den "Abmelden"-Button; rechts oben wenn man auf sein Avatar klickt.

    Oke super danke, dass müsste funktionieren.

    Allerdings habe ich folgende Fehlermeldung wenn ich das Script ausführe: "WebException wurde nicht behandelt. Es wurden zu viele automatische Umleitungen versucht." Daber zeigt diese Fehlermeldung auf folgende Zeile im Script:

    VB.NET-Quellcode

    1. Dim Response As HttpWebResponse = Request.GetResponse()


    Hier nochmal das ganze Script:

    VB.NET-Quellcode

    1. Imports System.IO, System.Net, System.Text
    2. Public Class Form1
    3. Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    4. Dim User = "igoe", Pwd = ""
    5. Dim Request As HttpWebRequest = CType(WebRequest.Create("https://signin.ea.com/p/web/login?execution=e1093083431s1&initref=https%3A%2F%2Faccounts.ea.com%3A443%2Fconnect%2Fauth%3Fscope%3Dbasic.identity%2Bbasic.persona%2Bsignin%2Boffline%26redirect_uri%3Dhttp%253A%252F%252Fwww.easports.com%252Ffifa%252Ffootball-club%252Flogin_check%26locale%3Dus%26state%3Dfaff91f795dfcde58a4ae87471147233fe7ffe37%26response_type%3Dcode%26client_id%3DEASFC-web"), HttpWebRequest)
    6. Request.Method = "POST"
    7. Request.ContentType = "application/x-www-form-urlencoded"
    8. Dim Post As String = "email=-->meinemail<--&password=-->meinpw<--&_rememberMe=on&_eventId=submit&facebookAuth="
    9. Dim byteArray() As Byte = Encoding.UTF8.GetBytes(Post)
    10. Request.ContentLength = byteArray.Length
    11. Dim DataStream As Stream = Request.GetRequestStream()
    12. DataStream.Write(byteArray, 0, byteArray.Length)
    13. DataStream.Close()
    14. Dim Response As HttpWebResponse = Request.GetResponse()
    15. DataStream = Response.GetResponseStream()
    16. Dim reader As New StreamReader(DataStream)
    17. Dim ServerResponse As String = reader.ReadToEnd()
    18. reader.Close()
    19. DataStream.Close()
    20. Response.Close()
    21. If InStr(ServerResponse, "Abmelden") Then
    22. MessageBox.Show("Login OK")
    23. Else
    24. MessageBox.Show("Login nicht OK")
    25. End If
    26. End Sub
    27. End Class
    Nur so ne Vermutung...wenn ich ehrlich bin hab ich mich mit Webresponse noch nicht auseinander gesetzt...

    Try:
    Dim response As HttpWebResponse = CType(request.GetResponse(), HttpWebResponse)
    So sollte das funktionieren, eben getestet:

    VB.NET-Quellcode

    1. Dim cookie As New CookieContainer
    2. Dim request As HttpWebRequest
    3. request = CType(HttpWebRequest.Create("https://signin.ea.com/p/web/login?execution=e1093083431s1&initref=https%3A%2F%2Faccounts.ea.com%3A443%2Fconnect%2Fauth%3Fscope%3Dbasic.identity%2Bbasic.persona%2Bsignin%2Boffline%26redirect_uri%3Dhttp%253A%252F%252Fwww.easports.com%252Ffifa%252Ffootball-club%252Flogin_check%26locale%3Dus%26state%3Dfaff91f795dfcde58a4ae87471147233fe7ffe37%26response_type%3Dcode%26client_id%3DEASFC-web"), HttpWebRequest)
    4. request.Method = WebRequestMethods.Http.Post
    5. request.CookieContainer = cookie
    6. request.UserAgent = "Mozilla/5.0 (Linux; U; Android 4.0.3; ko-kr; LG-L160L Build/IML74K) AppleWebkit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30"
    7. request.ContentType = "application/x-www-form-urlencoded"
    8. Dim post As String = "email=-->meinemail<--&password=-->meinpw<--&_rememberMe=on&_eventId=submit&facebookAuth="
    9. Dim byteArr() As Byte = Encoding.Default.GetBytes(post)
    10. request.ContentLength = byteArr.Length
    11. Dim dataStream As Stream = request.GetRequestStream()
    12. dataStream.Write(byteArr, 0, byteArr.Length)
    13. Dim response As HttpWebResponse
    14. response = CType(request.GetResponse(), HttpWebResponse)
    15. Dim html As String = New StreamReader(response.GetResponseStream).ReadToEnd
    16. If html.Contains("Your Email or Password is incorrect. Please try again.") Then
    17. MessageBox.Show("Login falsch!")
    18. Else
    19. MessageBox.Show("Login korrekt!")
    20. End If

    ThomasProj schrieb:

    So sollte das funktionieren, eben getestet:

    VB.NET-Quellcode

    1. Dim cookie As New CookieContainer
    2. Dim request As HttpWebRequest
    3. request = CType(HttpWebRequest.Create("https://signin.ea.com/p/web/login?execution=e1093083431s1&initref=https%3A%2F%2Faccounts.ea.com%3A443%2Fconnect%2Fauth%3Fscope%3Dbasic.identity%2Bbasic.persona%2Bsignin%2Boffline%26redirect_uri%3Dhttp%253A%252F%252Fwww.easports.com%252Ffifa%252Ffootball-club%252Flogin_check%26locale%3Dus%26state%3Dfaff91f795dfcde58a4ae87471147233fe7ffe37%26response_type%3Dcode%26client_id%3DEASFC-web"), HttpWebRequest)
    4. request.Method = WebRequestMethods.Http.Post
    5. request.CookieContainer = cookie
    6. request.UserAgent = "Mozilla/5.0 (Linux; U; Android 4.0.3; ko-kr; LG-L160L Build/IML74K) AppleWebkit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30"
    7. request.ContentType = "application/x-www-form-urlencoded"
    8. Dim post As String = "email=-->meinemail<--&password=-->meinpw<--&_rememberMe=on&_eventId=submit&facebookAuth="
    9. Dim byteArr() As Byte = Encoding.Default.GetBytes(post)
    10. request.ContentLength = byteArr.Length
    11. Dim dataStream As Stream = request.GetRequestStream()
    12. dataStream.Write(byteArr, 0, byteArr.Length)
    13. Dim response As HttpWebResponse
    14. response = CType(request.GetResponse(), HttpWebResponse)
    15. Dim html As String = New StreamReader(response.GetResponseStream).ReadToEnd
    16. If html.Contains("Your Email or Password is incorrect. Please try again.") Then
    17. MessageBox.Show("Login falsch!")
    18. Else
    19. MessageBox.Show("Login korrekt!")
    20. End If



    Super danke das funktioniert! Nur bei mir kommt immer Login falsch... Habe email und pw mehrmals gecheckt und auch das @ in %40 und so umgewandelt ums mal auszuprobieren und auch mal die If html.contains abfrage geändert, aber es kommt immer Login Falsch! Hat einer eine Idee warum?