Benutzer mit den meisten Antworten
Webbroswer & Button

Frage
-
Hallo,
ich habe mal ne Frage.
Ein Beispiel ich will ein Programm erstellen, wo man Email & Passwort eingibt & er sich dann z.B dann bei YahooMail einloggt. Also das hab ich schon & weiß wie das geht also mit webbrowser & den Id´s. Aber
jetzt will ich ein Button der Enable ist also auf den man nicht Klicken kann.
Er soll nur dann Enable True sein also Anklickbar, wenn man sich erst in YahooMail eingeloggt hat. Also nicht nachdem der "einlogg" button geklickt wurden ist. Sondern nur dann wenn man auch wircklich eingeloggt ist. Weil es kann ja sein das man ausversehen das Passwort Falsch eingeben hat, dann soll aber der Button aber immer noch nicht anklickbar sein. Weil mein Problem ist ich kenne den Code womit der Button anklickbar ist nachdem man einfach nur email passwort & auf einloggen geklickt hat aber nicht wenn er erst wircklich eingeloggt ist. Hoffe Ihr versteht was ich meine & könnt mir den Code nennen.
Das muss glaub ich im Webbrowser Private Sub eingegeben werden & glaub auch irgendwie ein If Funktion.
If webbrowser1.......(keine Ahnung) then
Button3.Enabled = True
End If
so irgendwie denk ich ma aber ich verzweifle habe schon vieles Probiert! hoffe ihr könnt mir helfen.
MFG
Vladi
Antworten
-
Hi,
in dem Fall musst Du dann die HTML Rückgabe parsen und schauen, ob an entsprechender Stelle ein bestimmter Text steht.
Wenn man auf der o.g. Seite einfach mal auf den Button klickt, kommt bspw. folgende HTML Ausgabe (nur der relevante Teil)
<div id="j_id50" class="formaterror"> <span class="error">Der eingegebene Text stimmt nicht mit dem Angezeigten überein.</span> <label id="errorMessage"></label> </div>
Wenn man den Captchacode korrekt eingegeben hat, bspw. das hier:
<div id="j_id50" class="formaterror"> <span class="error">Bei deinem PIN-Code und/oder Passwort ist ein Fehler aufgetreten. Bitte überprüfe die korrekte Eingabe des PIN-Codes oder Passworts.</span> <label id="errorMessage"></label> </div>
Da gibt es sicher noch viele andere Varianten, normalerweise kommt nach erfolgreichem Login ggfs. auch eine Umleitung (301 oder 302 Status), in der Regel könnte man aber zumindest den Inhalt des <span> Tags prüfen und wenn sich dort etwas findet, die Meldung entsprechend mit ausgeben.
Wie genau man nun bei dieser Seite eine erfolgreiche Anmeldung erkennen kann, weiß ich mangels Zugang nicht (Und Nein, ich werd mir sicher nichts zulegen, nur damit ich das testen kann^^)
Daher der Tipp: Schau dir das, was im Browser passiert, bspw. per Fiddler oder Firebug an. Denn genau das musst Du dann bei dir nachbauen bzw. abprüfen.
Ein Hinweis noch: Erkundige dich vorher, ob der Anbieter das, was Du da machen willst, überhaupt erlaubt. Fremde PINs einzugeben bzw. deinerseits zwischenzuspeichern, weiterzuleiten, ... dürfte IMHO nicht erlaubt sein.
Gruß, Stefan
Microsoft MVP - Visual Developer ASP/ASP.NET
http://www.asp-solutions.de/ - Consulting, Development
http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community- Als Antwort markiert Robert BreitenhoferModerator Freitag, 9. März 2012 16:35
-
Hallo Vladi,
Ich verlange ja nicht das Sie sich dort anmelden.
das wäre aber notwendig, um ...
Also was für ein Code muss ich eingeben & wo damit er sich durch den Fehlertext damit der Enabled False braucht & welchen damit er True ist.
... das konkret beantworten zu können. Denn nur dann kann man die einzelnen Rückmeldungen sehen und austesten, wann eine Anmeldung erfolgreich war und wann nicht. Daher nochmal der Hinweis:
Schau dir das, was im Browser passiert, bspw. per Fiddler oder Firebug an. Denn genau das musst Du dann bei dir nachbauen bzw. abprüfen. Wenn Du dann den String erkannt hast, der für eine erfolgreiche Anmeldung steht, rufst Du einfach nur <Button>.Enabled = True auf.
Wenn man ein Programm erstellt hat & Fertig ist. Dann kann man ihn in ein Editor oder in C++ oder sonstige Textdatei ziehen & dann ist das Programm auseinander genommen & man sieht die Einzelkeiten. Kann man das irgendwie machen das man das Programm nicht auseinander nehmen kann. Weil ich habe ein älteres Programm so ein Email Sender wo Leute mir mit dem Programm ne Email senden können aber wenn man ihn auseinandere nimmt kann man unter smtp mein Email & passwort sehen.
Da gibts noch viel schlimmeres. Da sieht man sogar den Quellcode und kann problemlos durchnavigieren
http://www.telerik.com/products/decompiler.aspx
...
Gegenmaßnahmen wären bspw. durch Obfuskatoren und/oder Protection Tools möglich.
http://www.google.de/#q=.net+obfuscator
http://www.google.de/#q=.net+code+protection
Gruß, Stefan
Microsoft MVP - Visual Developer ASP/ASP.NET
http://www.asp-solutions.de/ - Consulting, Development
http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community- Als Antwort markiert Robert BreitenhoferModerator Freitag, 9. März 2012 16:35
-
Hi,
hatte noch eines vergessen. Die Aktivierung des Buttons kannst Du, wenn Du die erfolgreiche Anmeldung irgendwie ermittelt hast, dann so machen:
If <AnmeldungErfolgreich> Then <Button>.Enabled = True End if
Gruß, Stefan
Microsoft MVP - Visual Developer ASP/ASP.NET
http://www.asp-solutions.de/ - Consulting, Development
http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community- Als Antwort markiert Robert BreitenhoferModerator Freitag, 9. März 2012 16:35
Alle Antworten
-
Hallo Vladi,
mir scheint, dass da noch viel mehr als nur ein If Else ... fehlt. Eher dürften da noch einige Grundlagen fehlen, die für deine weiteres Vorankommen doch sehr wichtig sein werden.
Wenn Du den Code für die Anmeldung beim Webmailanbieter schon hast, zeig uns den bitte. Denn dort wird man ansetzen, um dann die Rückgabe in der Art zu prüfen, ob die Anmeldung erfolgreich war oder eben nicht. Falls die Anmeldung erfolgreich war, setzt man sich ein Flag (bspw. eine Boolean Eigenschaft) und löst ggfs. noch ein Ereignis aus, damit der Button automatisch aktiviert werden kann.
Um dir das aber zeigen zu können, bräuchte man den Code für die Anmeldung an sich. Daher poste den bitte mal.
Gruß, Stefan
Microsoft MVP - Visual Developer ASP/ASP.NET
http://www.asp-solutions.de/ - Consulting, Development
http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community
- Bearbeitet Stefan FalzModerator Dienstag, 21. Februar 2012 15:38
- Als Antwort markiert Vlaadi Dienstag, 21. Februar 2012 16:25
- Tag als Antwort aufgehoben Vlaadi Dienstag, 21. Februar 2012 16:25
-
Das mit der Email war ein Beispiel. Ich weiß nicht ob du die Seite kennst aber es geht um die Seite
https://customer.cc.at.paysafecard.com/psccustomer/GetWelcomePanelServlet?&language=de
Und diese Seite öffnet sich im Webbrowser im Programm. Dann hab ich 4 Textboxen wo man den Pin eingibt & ein Button wo steht "einfügen". Wenn man auf ihn drückt fügt er den Pin aus den Textboxen in den auf dem Webbrowser.Der Code dafür ist:
Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
WebBrowser1.Document.GetElementById("mainPagePart:rn1").SetAttribute("value", TextBox1.Text)
WebBrowser1.Document.GetElementById("mainPagePart:rn2").SetAttribute("value", TextBox2.Text)
WebBrowser1.Document.GetElementById("mainPagePart:rn3").SetAttribute("value", TextBox3.Text)
WebBrowser1.Document.GetElementById("mainPagePart:rn4").SetAttribute("value", TextBox4.Text)
Form2.Show()End Sub
Dann öffnet sich eine 2te Form.
Wo man die Zahlen aus dem Sicherheits-Check eingibt und ein "Ok" button die dann die Zahlen in das Sicherheits-Check Feld einfügt & im Webbrowser auf "OK" klickt zum einloggen. Der Code dafür ist:
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Form1.WebBrowser1.Document.GetElementById("mainPagePart:verifyCaptcha").SetAttribute("value", TextBox1.Text)
Form1.WebBrowser1.Document.GetElementById("mainPagePart:next").InvokeMember("click")
Me.Close()End Sub
Dann loggt er sich ein. So und ich will nun erstens das wenn er sich Falsch eingeloggt hat also Pin falsch oder Sicherheits-Check falsch soll sich eine Msgbox öffnen mit dem text halt pin falsch oder sicherheitscheck.. falsch & zweitens das wenn er sich erfolgreich eingeloggt hat soll sich mein Button4 von Enabled false auf True ändern.
-
Hi,
in dem Fall musst Du dann die HTML Rückgabe parsen und schauen, ob an entsprechender Stelle ein bestimmter Text steht.
Wenn man auf der o.g. Seite einfach mal auf den Button klickt, kommt bspw. folgende HTML Ausgabe (nur der relevante Teil)
<div id="j_id50" class="formaterror"> <span class="error">Der eingegebene Text stimmt nicht mit dem Angezeigten überein.</span> <label id="errorMessage"></label> </div>
Wenn man den Captchacode korrekt eingegeben hat, bspw. das hier:
<div id="j_id50" class="formaterror"> <span class="error">Bei deinem PIN-Code und/oder Passwort ist ein Fehler aufgetreten. Bitte überprüfe die korrekte Eingabe des PIN-Codes oder Passworts.</span> <label id="errorMessage"></label> </div>
Da gibt es sicher noch viele andere Varianten, normalerweise kommt nach erfolgreichem Login ggfs. auch eine Umleitung (301 oder 302 Status), in der Regel könnte man aber zumindest den Inhalt des <span> Tags prüfen und wenn sich dort etwas findet, die Meldung entsprechend mit ausgeben.
Wie genau man nun bei dieser Seite eine erfolgreiche Anmeldung erkennen kann, weiß ich mangels Zugang nicht (Und Nein, ich werd mir sicher nichts zulegen, nur damit ich das testen kann^^)
Daher der Tipp: Schau dir das, was im Browser passiert, bspw. per Fiddler oder Firebug an. Denn genau das musst Du dann bei dir nachbauen bzw. abprüfen.
Ein Hinweis noch: Erkundige dich vorher, ob der Anbieter das, was Du da machen willst, überhaupt erlaubt. Fremde PINs einzugeben bzw. deinerseits zwischenzuspeichern, weiterzuleiten, ... dürfte IMHO nicht erlaubt sein.
Gruß, Stefan
Microsoft MVP - Visual Developer ASP/ASP.NET
http://www.asp-solutions.de/ - Consulting, Development
http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community- Als Antwort markiert Robert BreitenhoferModerator Freitag, 9. März 2012 16:35
-
Hi,
hatte noch eines vergessen. Die Aktivierung des Buttons kannst Du, wenn Du die erfolgreiche Anmeldung irgendwie ermittelt hast, dann so machen:
If <AnmeldungErfolgreich> Then <Button>.Enabled = True End if
Gruß, Stefan
Microsoft MVP - Visual Developer ASP/ASP.NET
http://www.asp-solutions.de/ - Consulting, Development
http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community- Als Antwort markiert Robert BreitenhoferModerator Freitag, 9. März 2012 16:35
-
Okay. Danke.
Ich verlange ja nicht das Sie sich dort anmelden.
Also was für ein Code muss ich eingeben & wo damit er sich durch den Fehlertext damit der Enabled False braucht & welchen damit er True ist.
& noch eine wichtige Frage:
Wenn man ein Programm erstellt hat & Fertig ist. Dann kann man ihn in ein Editor oder in C++ oder sonstige Textdatei ziehen & dann ist das Programm auseinander genommen & man sieht die Einzelkeiten. Kann man das irgendwie machen das man das Programm nicht auseinander nehmen kann. Weil ich habe ein älteres Programm so ein Email Sender wo Leute mir mit dem Programm ne Email senden können aber wenn man ihn auseinandere nimmt kann man unter smtp mein Email & passwort sehen.
-
Hallo Vladi,
Ich verlange ja nicht das Sie sich dort anmelden.
das wäre aber notwendig, um ...
Also was für ein Code muss ich eingeben & wo damit er sich durch den Fehlertext damit der Enabled False braucht & welchen damit er True ist.
... das konkret beantworten zu können. Denn nur dann kann man die einzelnen Rückmeldungen sehen und austesten, wann eine Anmeldung erfolgreich war und wann nicht. Daher nochmal der Hinweis:
Schau dir das, was im Browser passiert, bspw. per Fiddler oder Firebug an. Denn genau das musst Du dann bei dir nachbauen bzw. abprüfen. Wenn Du dann den String erkannt hast, der für eine erfolgreiche Anmeldung steht, rufst Du einfach nur <Button>.Enabled = True auf.
Wenn man ein Programm erstellt hat & Fertig ist. Dann kann man ihn in ein Editor oder in C++ oder sonstige Textdatei ziehen & dann ist das Programm auseinander genommen & man sieht die Einzelkeiten. Kann man das irgendwie machen das man das Programm nicht auseinander nehmen kann. Weil ich habe ein älteres Programm so ein Email Sender wo Leute mir mit dem Programm ne Email senden können aber wenn man ihn auseinandere nimmt kann man unter smtp mein Email & passwort sehen.
Da gibts noch viel schlimmeres. Da sieht man sogar den Quellcode und kann problemlos durchnavigieren
http://www.telerik.com/products/decompiler.aspx
...
Gegenmaßnahmen wären bspw. durch Obfuskatoren und/oder Protection Tools möglich.
http://www.google.de/#q=.net+obfuscator
http://www.google.de/#q=.net+code+protection
Gruß, Stefan
Microsoft MVP - Visual Developer ASP/ASP.NET
http://www.asp-solutions.de/ - Consulting, Development
http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community- Als Antwort markiert Robert BreitenhoferModerator Freitag, 9. März 2012 16:35
-
Hallo Vlaadi,
Ich gehe davon aus, dass die Antworten Dir weitergeholfen haben.
Solltest Du noch "Rückfragen" dazu haben, so gib uns bitte Bescheid.Grüße,
Robert
Robert Breitenhofer, MICROSOFT
Bitte haben Sie Verständnis dafür, dass im Rahmen dieses Forums, welches auf dem Community-Prinzip „Entwickler helfen Entwickler“ beruht, kein technischer Support geleistet werden kann oder sonst welche garantierten Maßnahmen seitens Microsoft zugesichert werden können.