Ich schreibe eine Firefox-Erweiterung, die wissen muss, welcher Benutzername des aktuell angemeldeten Benutzers in Windows, Mac oder Linux ist. Wenn ich also als "brh" in meinen Rechner eingeloggt bin, wird "brh" zurückgegeben. Irgendeine Idee wie man das von Erweiterung JavaScript macht?Den aktuell angemeldeten Benutzer von einer Firefox-Erweiterung aus finden
Antwort
Firefox-Erweiterungen spielen nach anderen Regeln als normales JavaScript auf der Seite: das Finden des aktuellen Benutzers ist absolut möglich.
Öffnen Sie Ihre Fehlerkonsole (in Tools) und diese eingeben:
Components.classes["@mozilla.org/process/environment;1"].getService(Components.interfaces.nsIEnvironment).get('USER')
Die Umgebungsvariablen Firefox mit gestartet wurde durch diese NsIEnvironment XPCOM component zur Verfügung stehen.
Sie müssen dieses möglicherweise pro Plattform anpassen. Wenn alles andere fehlschlägt, können Sie möglicherweise einen NsIFile in ~
erstellen, dann schauen Sie sich .path
an; Ich bin nicht sicher, ob Shell-Ausdrücke dort geehrt werden, obwohl ...
Denke nicht, dass das möglich ist, es scheint, als wäre es ein Sicherheitsloch, wenn es wäre.
Ja, nicht möglich ... Javascript läuft in einer sicheren Umgebung, und alle FF-Erweiterungen sind Javascript, so dass Sie nicht viel Interaktion mit dem OS tun können ... aber bleiben Sie krank, um zu sehen, ob jemand weiß Weg (es wäre SEHR cool ...)
Die gekennzeichnete richtige Antwort funktioniert gut. Ich benutze dies in unserer Erweiterung in Firefox 38. Ich verwende auch Ereignisse, damit die Seite mit der Erweiterung kommunizieren und Windows-Eigenschaften von der Erweiterung abrufen kann.
getWindowsProperty: function (prop) { zurück Components.classes ["@ mozilla.org/process/environment;1"].getService(Components.interfaces.nsIEnvironment).get(prop); },
Fantastisch! In Windows ist übrigens die Umgebungsvariable USERNAME anstatt USER. Indem Sie beides versuchen, decken Sie alle gewünschten Plattformen ab. – bhollis
Keine Probs. Ich stimme tatsächlich David und Dfectuoso zu - es scheint wie eine Sicherheitslücke ... In der Tat, Erweiterungen haben die gleichen Rechte wie Firefox selbst - sie sind wirklich vertraut. Ehrlich gesagt, es gibt so wenig FF-Malware! –
Apropos Sicherheitslücken, Sie können USERNAME so einstellen, dass es nicht die beste Möglichkeit ist, den Benutzer zu identifizieren - sie könnten das vielleicht verwenden, um sich als jemand anders auszugeben? – Rory