Pracuję dodatek Firefox (który jest napisany w języku JavaScript) i trzeba określić aktualnie zalogowanego użytkownika systemu Windows. Czy jest jakiś sposób na zrobienie tego?Uzyskaj nazwę użytkownika systemu Windows w starszej wersji (nie w rozszerzeniach WebExtensions)
Odpowiedz
Możesz użyć interfejsu nsIEnvironment, aby uzyskać zmienną środowiskową USERNAME
.
czy istnieje odpowiednik IE, który nie sprawia kłopotu z ActiveX (użytkownik jest informowany, że istnieje ryzyko bezpieczeństwa itp.) Podczas przechodzenia przez proces uzyskiwania nazwy użytkownika? – pythonian29033
<html>
<head>
<script language="javascript">
function GetUserName()
{
var wshell = new ActiveXObject("WScript.Shell");
alert(wshell.ExpandEnvironmentStrings("%USERNAME%"));
}
</script>
</head>
<body OnLoad="GetUserName();">
</body>
</html>
ActiveX nie działa dokładnie w Firefoksie. – sdwilsh
To załatwia sprawę w systemie Windows:
function getUser() {
return Components.classes["@mozilla.org/process/environment;1"].getService(Components.interfaces.nsIEnvironment).get('USERNAME');
}
To rozwiązanie daje mi ten błąd'TypeError: Components.classes jest undefined', Jak myślisz, jakie rozwiązanie tego błędu? – Scar
To nie działa w Firefoksie, jak pyta oryginalne pytanie. – Monkpit
@Scar: O ile zrozumiałem [ten Stackoverflow-post] (http://stackoverflow.com/questions/21378058/why-components-classes-is-undefined), nie można używać Components.classes w zwykłe strony internetowe. Jest przeznaczony do użycia w rozszerzeniach/dodatkach Firefox. – Stephanie
Firefox ma już zintegrowane uwierzytelnianie wbudowanej (wiele osób nie wie, że).
Patrz: https://developer.mozilla.org/en-US/docs/Integrated_Authentication
Oto Popularny dodatek do Firefoksa, które ułatwia konfigurację: https://addons.mozilla.org/nl/firefox/addon/integrated-auth-for-firefox/
Oto kilka dodatkowych wyjaśnień:
http://justgeeks.blogspot.nl/2011/01/firefox-supports-integrated-windows.html
Powodzenia!
następujący kod działa dla mnie zamiast zdarzenia onload z funkcji wywołującej:
var objUserInfo = new ActiveXObject("WScript.network");
document.write(objUserInfo.ComputerName+"<br>");
document.write(objUserInfo.UserDomain+"<br>");
document.write(objUserInfo.UserName+"<br>");
var uname = objUserInfo.UserName;
alert(uname);
Pytający używa * firefox *. Ta odpowiedź używa M $ ActiveX! To nie zadziała (i nie mogę uwierzyć, że faktycznie to przetestowałem, ale zrobiłem). Właściwie istniała wtyczka ActiveX do firefox (kilka wieków temu, w czasach FF2), ale ActiveX jest teraz na liście bloków Mozilli. ([źródło] (http://kb.mozillazine.org/ActiveX)). – GitaarLAB
Testowany, ale ten kod działa tylko w przeglądarce Internet Explorer i nie będzie działał w Firefoksie. Najlepszą opcją jest utworzenie ukrytej kontrolki/pola tekstowego, która do przechowywania wartości podanych z kodu (po stronie serwera), użyj javascript, aby uzyskać potrzebną wartość. Biorąc pod uwagę obecny trend, nie wszyscy używają IE do wykonywania swojej pracy. – mutanic
10 przedstawiciel za problem z pokazaniem nam są dodatkowe opcje – pythonian29033
- 1. Uzyskaj nazwę komputera w usłudze systemu Windows?
- 2. Uzyskaj zalogowaną nazwę użytkownika systemu Windows skojarzoną z pulpitem
- 3. Uzyskaj nazwę użytkownika w uwierzytelnianiu formularzy
- 4. Uzyskaj nazwę użytkownika Windows bieżącego użytkownika za pomocą php?
- 5. Znajdź nazwę użytkownika systemu Windows w folderze R
- 6. jak uzyskać nazwę użytkownika Windows w WPF
- 7. Uzyskaj nazwę użytkownika w konstruktorze kontrolera?
- 8. Uzyskaj nazwę użytkownika logowania w java
- 9. Uzyskaj nazwę użytkownika z URL w PHP
- 10. Uzyskaj pełną nazwę urządzenia audio z systemu Windows
- 11. Instalacja starszej wersji gcc
- 12. Uzyskaj nazwę wyświetlaną bieżącego użytkownika domeny systemu Windows z wiersza polecenia:
- 13. Jak używać starszej wersji gcc w Linuksie
- 14. Jak uruchomić aplikację w starszej wersji symulatora?
- 15. Uzyskaj folder Pulpit użytkownika za pomocą interfejsu API systemu Windows?
- 16. Utwórz nowy projekt w szynach starszej wersji
- 17. Jak uzyskać nazwę użytkownika Windows w Javie?
- 18. Uzyskaj nazwę wersji aplikacji za pomocą adb
- 19. AspNet5 - Windows Uwierzytelnianie Uzyskaj nazwę grupy z roszczeń
- 20. Zmień nazwę/nazwę użytkownika cygwin
- 21. Moduły ES6 w rozszerzeniach w wersji Chrome 61
- 22. Uzyskaj nazwę kontrolki użytkownika nadrzędnego WPF C#
- 23. Jak uruchomić program wiersza poleceń w rozszerzeniach internetowych Firefox?
- 24. Uzyskaj przyjazną dla użytkownika nazwę typu ogólnego w C#
- 25. Jak uzyskać nazwę bieżącego użytkownika systemu Windows w formacie nazwa_użytkownika @ domena?
- 26. Instalacja starszej wersji ImageMagick z homebrew
- 27. Jak powrócić do starszej wersji naszego kodu w Subversion?
- 28. Jak uzyskać kopię starszej wersji pliku w repozytorium git?
- 29. wyświetla aktualną nazwę gałęzi GIT w wierszu polecenia systemu Windows
- 30. Uzyskaj nazwę superklasy w ES6
Jest to zagrożenie dla bezpieczeństwa i dlatego nie jest narażony w javascript. Co próbujesz zrobić? –
Buduję wewnętrzne rozszerzenie dla firmy i muszę sprawdzić, który użytkownik zażąda danego dokumentu. – cwhiii
@duskwuff, dlaczego podbijać 7-letnie pytanie tylko dla tej edycji? Wszystko, co zrobiłeś, to zastąpienie jednego tagu w tytule innym tagiem w tytule. Znaczniki już dawały do zrozumienia, że chodziło o dodatek do Firefoksa. Nie było potrzeby edycji tego, aby wprowadzić tę zmianę. W rzeczywistości, jeśli chcesz uzyskać efekt pedantyczny, nie powinniśmy mieć nieintegralnych tagów w tytułach, więc "Get Windows username" byłoby bardziej odpowiednie. Czy proponujesz, abyśmy zawsze umieszczali znaczniki we wszystkich tytułach? – Makyen