Skip to content

LANCOM PublicSpot verfeinern

Seit einiger Zeit betreiben wir ein offenes Kunden-WLAN als kostenfreien Service. Darüber erhält jeder Kunde einmal alle 24 Stunden eine Stunde kostenfreies Internet bei uns. Realisiert habe ich das ganze über unsere vorhandene WLAN-Infrastruktur und die LANCOM Public-Spot-Option. Dieses funktioniert soweit ganz gut.

Als der Wunsch aufkam, war die Sache mit der Störerhaftung noch nicht komplett vom Tisch. Die Idee war daher, dass sich Kunden einmalig mit der Rufnummer des Mobiltelefons registrieren, das Passwort per SMS bekommen und alles wäre schön gewesen. Im Hintergrund hätte man dann die Rufnummer noch mit den Daten aus unserem CRM verknüpfen können (natürlich wenn der Kunde es wünscht und die Rufnummer an seinem Kundenkonto hinterlegt), um angepasste Werbung schalten zu können.
Es wurde dann aber zu Gunsten der Einfachheit darauf verzichtet. Jetzt muss der Kunde nur bestätigen, dass er die Nutzungsbedingungen gelesen hat. Ein Knopfdruck und fertig. Funktioniert wunderbar. In den letzten Wochen wurde das Angebot bereits 4500 Mal genutzt.

 

Jetzt haben wir aber auch immer mal wieder den Fall, dass wir Hersteller oder externe Dienstleister im Rahmen einer Aktion in den Filialen haben. Immer häufiger ist auch hier ein Internetzugang nötig. Im Filialnetz oder einem der Technetze haben die nichts verloren, ein gesondertes Netzwerk gibt es nicht und im Kunden-WLAN wäre nach 60 Minuten Schicht im Schacht, nächstes Login erst 24 Stunden später.
LANCOM hat für diesen Fall im PublicSpot aber nichts vorgesehen.

Als ich jedoch letztens bei der Fehleranalyse die Traces des PublicSpots gelesen habe, ist mir eine Idee gekommen. Die One-Click-Lösung legt auch nur Benutzerkonten im dahinter liegenden RADIUS-Server an und übergibt die Anmeldedaten im Hintergrund direkt ans System. Ich halte mich auch nicht so wirklich an die Vorgaben von LANCOM. Mich hat das sehr präsente LANCOM-Logo und ein, für mich nicht akzeptabler, Schreibfehler gestört. Daher nutze ich nicht die Platzhalter wie <pbelem loginform> sondern jenes Formular, was der Router dafür einsetzt.

So sieht die Login-Seite nach der Anpassung aus.

So habe ich auf einem Testrouter erst den PublicSpot mit "Keine Anmeldung nötig (Login nach Einverständniserklärung)" und dann mit "Anmeldung mit Name und Passwort" konfiguriert, mir die jeweilige Anmeldeseite im Quelltext anzeigen lassen und dann zusammenkopiert. Im ersten Anlauf hat es nicht funktioniert. Grund war, dass das Formular per POST übermittelt wird, laut Trace die Zugangsdaten im AGB-Modus per GET übertragen werden. Auch hießen die Felder anders. Im Original heißen die Parameter userid und password, müssen aber auch UserName und Password geändert werden. Ob die Namen casesensitive sind, weiß ich nicht, ich hab mich einfach an die Schreibweise aus dem Trace gehalten.

Nun habe ich eine Seite, welche sowohl den Kunden eine Stunde per Knopfdruck, aber auch Langzeitbenutzern die Anmeldung mit personalisierten Zugangsdaten ermöglicht. So sieht dann der wichtige Teil aus:

    <FORM id="agbloginform" METHOD="POST" name="agbloginformname" ACTION="http://10.111.222.1:80/authen/agblogin/">
        <h2>Kundenlogin</h2>
        <div style="padding-bottom:0px;">
        </div>
        <button TYPE="submit">Einloggen</button>
    </FORM>
    
    <div>
        <h2>Mitarbeiterlogin</h2>
            <FORM METHOD=GET NAME="myForm" ACTION="http://10.111.222.1:80/authen/login/">
                <input id="UserName" name="UserName" type="text" size="24" maxlength="64" value="Ihre Benutzerkennung" onfocus="if(this.value && this.value == this.defaultValue) { this.value=''; if(document.all) {this.createTextRange().select(); } this.style.color='#000000'; }" onblur="if(this.value == '') { this.value='Ihre Benutzerkennung'; this.style.color='#ccc'; }"/><br />
                <input id="Password" name="Password" type="text" size="24" maxlength="64" value="Ihr Passwort" onfocus="if(this.value && this.value == this.defaultValue) { this.value=''; if(document.all) {this.createTextRange().select(); } document.getElementById('showPassword').checked ? this.type='text' : this.type='password'; this.style.color='#000000'; }" onblur="if(this.value == '') { this.value='Ihr Passwort'; this.type='text'; this.style.color='#ccc'; }"/>
                <div style="padding-bottom:0px;">
                    <input id="showPassword" name="showPassword" type="checkbox" onchange="if(document.getElementById('password').value && document.getElementById('password').value != document.getElementById('password').defaultValue) { this.checked ? document.getElementById('password').type='text' : document.getElementById('password').type='password' }" /><span id="showPasswordText">Passwort anzeigen</span>
                </div>
                <button TYPE="submit">Einloggen</button></FORM>
    </div>

 

Wichtig! Bei der AGB-Anmeldung ist HTTPS unnötig, aber mit der Benutzeranmeldung sollte man dieses aktivieren. Benutzername und Passwort sind in einem ungeschützten WLAN problemlos auslesbar.

Kunden klicken weiterhin ganz einfach auf den Akzeptieren-Knopf und für Aktionen wird einfach mit dem PublicSpot-Benutzer-Assistenten ein Benutzer mit abweichenden Einstellungen, wie einer längeren Laufzeit, Mehrfachlogin und ähnlichem angelegt.

Trackbacks

Keine Trackbacks

Kommentare

Ansicht der Kommentare: Linear | Verschachtelt

Noch keine Kommentare

Kommentar schreiben

Standard-Text Smilies wie :-) und ;-) werden zu Bildern konvertiert.
Umschließende Sterne heben ein Wort hervor (*wort*), per _wort_ kann ein Wort unterstrichen werden.
Formular-Optionen