Wie kann ich Firefox veranlassen, automatisch ein Benutzernamen- / Passwortformular auszufüllen und abzusenden?

3

In unserer Mitarbeiterlounge habe ich einen PC mit einem großen Fernseher installiert, um unsere Unternehmensnachrichten anzuzeigen. Die Hinweise werden auf einer externen SharePoint-Seite in der Zentrale veröffentlicht und in der Lounge mit Firefox (v33.0.3) angezeigt. Ich habe den PC so eingestellt, dass er jeden Morgen startet und Firefox startet, aber die SharePoint-Seite erfordert eine Authentifizierung, sodass ich mich manuell anmelden muss:

Bildbeschreibung hier eingeben

Ich verwende ReloadEvery auch, um die Seite alle 5 Minuten neu zu laden, um neuen Inhalt anzuzeigen, aber die Sitzung dauert nur etwa 30 Minuten und erfordert eine erneute Anmeldung.

Ich möchte dies automatisieren, damit Firefox jedes Mal, wenn es auf diese Seite stößt, automatisch die Anmelde-ID und das Kennwort eingibt und diese übermittelt.

Antworten auf ähnliche Fragen haben das AutoFill Forms-Add-On vorgeschlagen, aber es füllt den Benutzernamen / das Kennwort beim Laden dieser Seite weder aus noch übermittelt es ihn / es. Ich muss immer noch auf die Schaltfläche "Automatisch ausfüllen" und dann auf "Senden" klicken. Die Featureliste besagt auch, dass Formulare automatisch gesendet werden können, aber ich kann nirgendwo finden, um dies zu aktivieren.

Wenn ich mit der rechten Maustaste klicke und "Formulardetails anzeigen" wähle, sehe ich Folgendes:

Bildbeschreibung hier eingeben

Quellcode der Seite:

<!DOCTYPE html>
<!-- template name: html.form.login.template.html -->
<html lang="en" dir="ltr">
<head>
    <script type="text/javascript">
        function postOk()
        {
            document.forms[0]['pf.ok'].value = 'Login';
            document.forms[0].submit();
        }

        function postOnReturn(e)
        {
            var keycode;
            if (window.event) keycode = window.event.keyCode;
            else if (e) keycode = e.which;
            else return true;

            if (keycode == 13)
            {
                document.forms[0].submit();
                return false;
            }
            else
                return true;
         }

         function setFocus()
         {
            var platform = navigator.platform;
            if(platform != null && platform.indexOf("iPhone") == -1)
            {
              document.getElementById('username').focus();
            }
         }

    </script>
    <base href="https://our.company.web.address.com/"/>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
    <meta name="viewport" content="minimum-scale=0.1, maximum-scale=2.0, user-    scalable=1"/>
    <title>Our Company Name</title>
    <link rel="stylesheet" media="all" type="text/css" href="assets/css/screen.1.css"/>
    <link rel="shortcut icon" href="assets/images/favicon.ico" />
</head>     
<body onload="setFocus()">
<div class="ping-container">
    <div class="ping-header">
        <div class="ping-header-bg">
            <div class="COMPANY-name"><a href="http://our.company.web.address.com/"><img src="assets/images/agencyname.png" alt="Our motto"></a></div>
        </div>
    </div><!-- .ping-header -->
    <div class="ping-body-container" >
        <div id="content-left">
        </div>
        <div class="ping-body">
            <div style="display:none">html.form.login.template.info.4 $escape.escape($spEntityId)</div>
            <form method="POST" action="/idp/7krkY/resumeSAML20/idp/SSO.ping" autocomplete="off">
                <div style="padding: 0px 5px 14px; font-size: 110%">

                </div>
                <div style="margin-bottom: 12px; font-size: 84%; font-weight: bold;"><span>Logon ID</span>
                <input id="username" type="text" size="36" name="pf.username" value="" autocorrect="off" autocapitalize="off" onKeyPress="return postOnReturn(event)" /><!---->    </div>
                <div style="font-size: 84%; font-weight: bold;"><span>Password</span>
                <input id="password" type="password" size="36" name="pf.pass" onKeyPress="return postOnReturn(event)" autocomplete="off"/></div>
                                <div class="ping-buttons">
                    <input type="button" name="pf.ok" onclick="postOk();" value="Login"/>
                </div><!-- .ping-buttons -->
            </form>
        </div><!-- .ping-body -->
        <div id="logonHelp">
            <h4>
                Our Company Name
            </h4>

            <p>
                The section of the website you are trying to access requires a 
                Logon ID and password. 
            </p>
            <p>
                If you have forgotten your Logon ID and/or password please
                contact {redacted phone number}
            </p>
        </div>
    </div><!-- .ping-body-container -->
    <div class="ping-footer-container">
        <div class="ping-footer">
           <p><a href="http://our.company.web.address.com/home/copyr.html">Copyright</a> 
            | <a     href="http://our.company.web.address.com/home/copyr.html#disclaimer">Disclaimer</a> 
            | <a href="http://our.company.web.address.com/home/privacy.html">Privacy</a> 
            | <a href="http://our.company.web.address.com/about/access/keys.html" accesskey="0">Access keys</a> 
            | <a href="http://our.company.web.address.com/other_languages/index.html"><img src="assets/images/icon-

flags.gif" alt="">Other languages</a></p> 
            <p></p> 
            <p></p> 
        </div><!-- .ping-footer -->
    </div><!-- .ping-footer-container -->
</div><!-- .ping-container -->
</body>
</html>

Ich habe keinen Zugriff auf das SharePoint-System.

Wie kann ich Firefox veranlassen, dieses Formular für Benutzername / Passwort automatisch auszufüllen und abzusenden?

xx
quelle
Wenn Sie mit JS vertraut sind, würde ich empfehlen, ein UserScript zu erstellen, um dies zu tun.
DragoonHP

Antworten:

2

Eine Lösung wäre, eine lokale HTML-Datei mit einer Kopie des Anmeldeformulars und zusätzlichem Javascript zu erstellen, um das Formular automatisch zu senden. Fügen Sie den Benutzernamen und das Kennwort zu den Formulareingaben hinzu, z value="MYUSERNAME".

Ändern Sie Ihre lokale Datei wie folgt:

Zeile 62:

<input id="username" type="text" size="36" name="pf.username" value="MYUSERNAME"  autocorrect="off" autocapitalize="off" onKeyPress="return postOnReturn(event)" />

Zeile 64:

<input id="password" type="password" size="36" name="pf.pass" onKeyPress="return postOnReturn(event)" autocomplete="off" value="MYPASSWORD" />

Und fügen Sie nach Zeile 99 (vor dem </body>Tag) ein:

<script type="text/javascript">
postOk();
</script>

Dadurch wird das Formular beim Öffnen der Datei automatisch gesendet. Der letzte Schritt besteht darin, die Datei als Firefox-Homepage festzulegen.

jjz
quelle
Ihre Antwort ließ mich an ein fehlendes Detail in meiner ursprünglichen Frage denken, was bedeuten würde, dass diese Antwort wahrscheinlich nicht funktionieren würde. Ich verwende auch ReloadEvery, um die Seite alle 5 Minuten zu aktualisieren. Die Sitzung läuft jedoch nach 30 Minuten ab und kehrt zur Anmeldeseite zurück.
xx
Möglicherweise möchten Sie die Lösung ausprobieren, bevor Sie behaupten, dass sie möglicherweise nicht funktioniert.
Ramhound
@DrTwox Das Sitzungszeitlimit klingt nach einem separaten Problem. Sie können diese Seite beispielsweise in einen Iframe mit etwas Javascript auf der äußeren Seite einfügen, wodurch der Iframe vor Ablauf der Sitzung automatisch neu geladen wird.
JJZ