Proxy und authenticationRequired

Alles rund um die Programmierung mit Qt
Antworten
Leffotrak
Beiträge: 26
Registriert: 12. Mai 2007 10:44

Proxy und authenticationRequired

Beitrag von Leffotrak »

Hallo!

Ich bin im Moment ein wenig am basteln und komme leider derzeit nicht weiter. Problem ist folgendes:
Meine Anwendung versucht über QHttp eine Webseite runter zu laden, die jedoch eine Anmeldung erfordert. In den Qt-Beispielen ist ein Programm namens "http" dabei, wo genau diese Funktionalität drin ist.
Dort wird diese Anfrage mit:

Code: Alles auswählen

connect(http, SIGNAL(authenticationRequired(const QString &, quint16, QAuthenticator *)),
            this, SLOT(slotAuthenticationRequired(const QString &, quint16, QAuthenticator *)));
abgefangen und ein Dialogfenster geöffnet, wo man die Daten eingeben kann, danach wird die Seite geladen.

Okay so weit so gut. Ich möchte allerdings nicht, dass mein Programm einen Dialog öffnet, sondern der Web-Browser. Mein Programm hat den Downloadauftrag vom Browser bekommen und ist über ein Socket mit ihm verbunden und jetzt möchte ich diesen Autorisationsauftrag an dem Browser weiterreichen, so das der User dort die Angaben eingibt und mein Programm die Infos vom Browser dann wieder an den Webserver weitergibt, so dass die Seite runtergeladen werden kann.

Ich hoffe das klingt jetzt komplizierter als es ist, mir ist zumindest durch die Qt-Anleitung nicht klargeworden, was ich jetzt machen muss, nachdem ich via authenticationRequired Meldung bekommen habe, dass eine Autorisation nötig ist.

Kann jemand helfen?
Danke,
Leffotrak
macman
Beiträge: 1738
Registriert: 15. Juni 2005 13:33
Wohnort: Gütersloh
Kontaktdaten:

Beitrag von macman »

Erstmal hat ein Proxy nichts mit authenticationRequired zu tun. Hier erfordert eine Website eine Autorisierung und wenn Du die Webseite mit Qt laden willst, dann muss die Autorisierung auch mit Qt gemacht werden. Ansonsten kannst Du gleich den Aufruf an den Webserver übergeben.

Wenn Du dir das Qt-Beispiel anschaust, dann siehst Du auch wie in dem Slot der Abfragedialog aufgerufen wird. Das kannst Du durch den Aufruf des Webservers ersetzen, aber davon bekommt Du nicht die Seite mit Qt herunter geladen, da Qt immer noch keine Autorisierung hat.

Was den Proxy angeht, dafür gibt es das Signal proxyAuthenticationRequired. Mit ISA-Proxys funktioniert das aber erst mit 4.3.3.
Die deutsche Schriftsprache ist case-sensitive. Außerdem gibt es eine Interpunktionsnorm. Wenn manch einer seine Programme genauso schlampig schreibt, wie sein Posting hier, dann sollte er es lieber bleiben lassen.
Leffotrak
Beiträge: 26
Registriert: 12. Mai 2007 10:44

Beitrag von Leffotrak »

Danke für deine Antwort. Ich habe, glaube ich, mittlerweile die Antwort selber gefunden. Qt scheint den Responseheader nicht weiter zu geben, wenn eine Autorisation seitens der Webseite verlangt wird.
Deswegen bekommt der Browser auch keine Infos von meinem Programm und es erscheint keine PW-Abfrage.

Ich werde jetzt mal versuchen was passiert, wenn ich manuell einen Header an dem Browser mit "WWW-Authenticate" schicke. Eventuell kann ich damit das Problem so umschiffen. Kann ich leider erst heute Abend testen.
macman
Beiträge: 1738
Registriert: 15. Juni 2005 13:33
Wohnort: Gütersloh
Kontaktdaten:

Beitrag von macman »

Ich bin jetzt wahrscheinlich genauso verwirrt wie es der User sein wird, wenn er dein Programm benutzt und der Browser mit einem Mal nach einem Passwort fragt :-)
Die deutsche Schriftsprache ist case-sensitive. Außerdem gibt es eine Interpunktionsnorm. Wenn manch einer seine Programme genauso schlampig schreibt, wie sein Posting hier, dann sollte er es lieber bleiben lassen.
Leffotrak
Beiträge: 26
Registriert: 12. Mai 2007 10:44

Beitrag von Leffotrak »

macman hat geschrieben:Ich bin jetzt wahrscheinlich genauso verwirrt wie es der User sein wird, wenn er dein Programm benutzt und der Browser mit einem Mal nach einem Passwort fragt :-)
Ich seh schon, ich habe mich ungünstig ausgedrückt :wink:
Mein Programm erhält die Aufträge direkt vom Browser, ist also ein Proxy, und demnach versuche ich natürlich das die PW-Abfrage im Browser erscheint und nicht eine Abfrage von meinem Programm da auf einmal aufpoppt :wink:
macman
Beiträge: 1738
Registriert: 15. Juni 2005 13:33
Wohnort: Gütersloh
Kontaktdaten:

Beitrag von macman »

Ah ja, interessante Aufgabe, viel Spaß bei SSL-Verbindungen :-)
Die deutsche Schriftsprache ist case-sensitive. Außerdem gibt es eine Interpunktionsnorm. Wenn manch einer seine Programme genauso schlampig schreibt, wie sein Posting hier, dann sollte er es lieber bleiben lassen.
Leffotrak
Beiträge: 26
Registriert: 12. Mai 2007 10:44

Beitrag von Leffotrak »

Ja SSL wollte ich irgendwann auch noch einbauen, hoffe das ohne größere Probleme über die Bühne zu kriegen.
Zu meinem aktuellen Problem habe ich leider noch keine richtige Lösung gefunden. Zwar öffnet der Browser nun das PW-Abfragefenster aber mein Programm erreichen keine Daten. Da bleibt mir wohl leider nur der Griff zum Sniffer. :?
macman
Beiträge: 1738
Registriert: 15. Juni 2005 13:33
Wohnort: Gütersloh
Kontaktdaten:

Beitrag von macman »

Ist die Passwortabfragerei nicht bereits verschlüsselt? Ich würde auf jeden Fall Qt neu mit -openssl übersetzen, brauchst Du sowieso.
Die deutsche Schriftsprache ist case-sensitive. Außerdem gibt es eine Interpunktionsnorm. Wenn manch einer seine Programme genauso schlampig schreibt, wie sein Posting hier, dann sollte er es lieber bleiben lassen.
Leffotrak
Beiträge: 26
Registriert: 12. Mai 2007 10:44

Beitrag von Leffotrak »

Okay, werde ich machen. Vielleicht findet sich dann ja schneller als gedacht eine Lösung :)
Antworten