Problem mit basic authentication und QNetworkAccessmanager



  • Hallo erstmal,

    zum Problem: ich öffne eine Seite mit meinem Browser, die per basic authentication nach Benutzename und Passwort fragt, nachdem man auf den Login Knopf gedrückt hat.
    Folgeneder Code

    Web::Web(QString url)
    {
    QWebView * view = new QWebView();
    QNetworkAccessManager * manager = view->page()->networkAccessManager();
    connect(manager, SIGNAL(authenticationRequired(QNetworkReply*,QAuthenticator*)),this,SLOT(handleAuthenticationRequired(QNetworkReply*,QAuthenticator*)));
    view->load(QUrl(url));
    }
    
    void Web::handleAuthenticationRequired(QNetworkReply*, QAuthenticator* authenticator)
    {
    		authenticator->setUser("test");
    		authenticator->setPassword("TEST");
    }
    

    funktioniert unter Windows mit dem Qt Creator einwandfrei(allerdings erst nach 10 maligem kompilieren(ohne änderungen)).
    unter Linux passiert rein gar nichts. Debugging hat ergeben,dass handleAuthenticationRequired nicht getriggert wird...

    kann mir das mal bitte jemand erklähren 😕
    Dankeschön.



  • Nee, spontan seh ich keinen Fehler. Was ich mir grundsätzlich vorstellen könnte:

    - proxyAuthenticationRequired
    - sslErrors, die nicht behandelt werden
    - Redirects werden nicht ausgeführt, muss man evtl. erst aktivieren, weiß ich jetzt nicht auswendig wie die behandelt werden

    Ansonsten wirst wohl das Zeug durchdebuggen müssen.



  • könnte es wohl daran liegen, dass auf dem Linux Rechner Qt 5.4 läuft und auf dem Windows 5.5? ich meine hat sich zwischen den Versionen so viel geändert?



  • Keine Ahnung, was sich da geändert hat. Ich kenn mich vor allem mit Qt < 4.8 aus. Grundsätzlich hat sich da insgesamt glaub nicht so viel geändert. Aber kann natürlich sein, dass da irgendwelche Bugs drin sind.
    Kann aber auch sein, dass es einfach anderer Code ist. Da gibts immer plattformspezifischen Code. Ich weiß grad nicht mehr, wie das intern ausschaut, hab da schon länger nicht mehr rumdebuggt. Ist aber grundsätzlich kein Problem, HTTP Anfragen kannst du in Qt problemlos komplett durchdebuggen und schauen wo was passiert.



  • ich denke ich habe es gefunden: https://bugreports.qt.io/browse/QTBUG-44096 soweit ich das verstanden habe, ist das genau mein Problem... also einfach Qt updaten.



  • sonstwas schrieb:

    ich denke ich habe es gefunden: https://bugreports.qt.io/browse/QTBUG-44096 soweit ich das verstanden habe, ist das genau mein Problem... also einfach Qt updaten.

    Ich habe mir jetzt nicht die Kommentare durchgelesen.
    Aber der Bugreport bezieht sich auf windows (und dort genauer auf window 7).
    Und ist somit nicht relevant für dein Problem unter linux.

    Und zusätzlich ist der Bug auch nicht als gelöst markiert.


Anmelden zum Antworten