Frage

Ich habe schon ein paar GreaseMonkey-Skripte, die ich geschrieben habe, an meine Arbeit, die automatisch log mich in die internen Webseiten, die wir hier haben.Ich habe es geschafft, ein Skript zu schreiben, die für fast jeden eine dieser Seiten, außer für unsere Zeit-Blatt-Anwendung, die verwendet HTTP-Authentifizierung.

Gibt es eine Möglichkeit, die ich verwenden kann GreaseMonkey zu melden, die mich in dieser site automatisch?

Edit:Ich bin mir bewusst, store Passwort-Funktionalität in den Browser, aber meine Skripte noch einen Schritt weiter gehen, indem die Prüfung, wenn ich mich auf der Website angemeldet, wenn es Lasten (durch das Durchlaufen von HTML) und dann Einreichen einen post auf der login-Seite.Dadurch entfällt der Schritt von laden zu müssen bis die Website, die Eingabe der login-Seite, der Eingabe meiner Anmeldeinformationen, dann schlagen Einreichen

War es hilfreich?

Lösung

Es ist möglich, sich mithilfe der HTTP-Authentifizierung an, indem Sie den "Authorization" HTTP header, der mit dem Wert dieser header gesetzt, um den string "basic" username:password", sondern mit "username:password" - Teil der Zeichenfolge Base-64-codiert.

http://frontier.userland.com/stories/storyReader$2159

Ein bisschen recherche herausgefunden, dass GreaseMonkey hat eine Funktion integriert, wo Sie senden können, GET / POST-requests an den server, den so genannten GM_xmlhttpRequest

http://diveintogreasemonkey.org/api/gm_xmlhttprequest.html

So setzen Sie alle zusammen (und auch immer diese JavaScript-code zum konvertieren von Zeichenketten in base64 bekomme ich die folgende

http://www.webtoolkit.info/javascript-base64.html

var loggedInText = document.getElementById('metanav').firstChild.firstChild.innerHTML;
if (loggedInText != "logged in as jklp") {
    var username = 'jklp';
    var password = 'jklpPass';
    var base64string = Base64.encode(username + ":" + password);

    GM_xmlhttpRequest({
        method: 'GET',
        url: 'http://foo.com/trac/login',
        headers: {
            'User-agent': 'Mozilla/4.0 (compatible) Greasemonkey/0.3',
            'Accept': 'application/atom+xml,application/xml,text/xml',
            'Authorization':'Basic ' + base64string,
        }
    });
}

Also, wenn ich jetzt die Seite besuchen, es durchläuft den DOM und wenn ich mich nicht angemeldet, es automatisch logs me in.

Andere Tipps

HTTP-Authentifizierung Informationen gesendet, bei jeder Anforderung, nicht nur, um sich anzumelden.Der browser-cache die login-Informationen für die Sitzung, nachdem Sie sich in der ersten Zeit.So, Sie nicht wirklich etwas sparen, indem Sie versuchen, zu überprüfen, ob Sie nicht bereits angemeldet sind.

Sie könnten auch vergessen greasemonkey zusammen und geben Sie einfach Ihr login in der url wie folgt:

http://username:password@host/

Natürlich, speichern Sie diese in ein Lesezeichen kann ein Sicherheitsrisiko sein, aber nicht mehr als Ihr Passwort speichern im browser.

Warum kommst du nicht mit Firefox (ich nehme an, Sie verwenden Firefox) zu erinnern, Ihre Anmeldedaten mit Passwort-Manager?

Ich habe diesen link gefunden: HTTP-Authentifizierung mit HTML-Formularen.Sieht aus wie Sie können javascript verwenden, um tun die HTTP-Authentifizierung.Ich glaube nicht, dass Sie können haben Greasemonkey unterbrechen, wenn Sie zuerst das navigieren zu einer URL, wenn.Möglicherweise müssen setup eine Art von Ausgangspunkt, den Sie verwenden können, um greasemonkey automatisch umgeleitet + login.Zum Beispiel können Sie die lokale Seite, welche die Ziel-URL im query-string, haben Greasemonkey automatisch authentifizieren - + - Umleitung.Das problem ist nur, dass Sie haben, um wickeln Sie die Website von Lesezeichen mit Ihrem Start-Seite der Lesezeichen, die Sie als Einstiegspunkte.

"http://username:password@host/"funktioniert nicht auf IE, FireFox funktioniert ok.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top