2010-06-03 2 views
25

JavaScript로 작성된 Firefox 부가 기능을 사용하고 있으며 현재 로그온 한 Windows 사용자를 확인해야합니다. 이것을 할 수있는 방법이 있습니까?레거시 (WebExtensions 제외) Firefox 추가 기능에서 Windows 사용자 이름 얻기

+0

이 보안 위험이며,이 자바 스크립트에 노출되지 않는 이유입니다. 너 뭐하려고? –

+0

회사의 내부 확장을 구축 중이며 어느 사용자가 어떤 문서를 요청하는지 확인해야합니다. – cwhiii

+0

@duskwuff, 왜 그 편집을 위해 7 살짜리 질문을 던집니까? 제목의 한 태그를 제목의 다른 태그로 바꾸면됩니다. 태그는 이미 파이어 폭스 부가 기능에 대한 것이 었음을 분명히했다. 변경하기 위해 이것을 편집 할 필요가 없었습니다. 실제로, 당신이 pedantic을 원한다면, 우리는 타이틀에 비 필수 태그를 포함하지 않아야하므로 "Get Windows username"이 더 적절할 것입니다. 우리는 항상 모든 제목에 태그를 넣으라고 제안하고 있습니까? – Makyen

답변

5

nsIEnvironment 인터페이스를 사용하면 USERNAME 환경 변수를 가져올 수 있습니다.

+2

거기에 Internet Explorer에서 발생하는 문제 (보안 위험 등이 있다는 사용자에게 알려주지 않음)를 제공하지 않는 IE와 동일한 기능이 있습니다. 사용자 이름을 가져 오는 프로세스를 진행할 때? – pythonian29033

-2
<html> 
<head> 
    <script language="javascript"> 
     function GetUserName() 
     { 
      var wshell = new ActiveXObject("WScript.Shell"); 
      alert(wshell.ExpandEnvironmentStrings("%USERNAME%")); 
     } 
    </script> 
</head> 
<body OnLoad="GetUserName();"> 
</body> 
</html> 
+8

ActiveX가 ActiveX에서 정확하게 작동하지 않습니다. – sdwilsh

9

이 Windows에서 트릭을 수행합니다

function getUser() { 
    return Components.classes["@mozilla.org/process/environment;1"].getService(Components.interfaces.nsIEnvironment).get('USERNAME'); 
}  
+1

이 솔루션은 저에게'TypeError : Components.classes is undefined' 오류를줍니다.이 오류에 대한 해결책은 무엇이라고 생각하십니까? – Scar

+0

원래 질문과 같이 Firefox에서 작동하지 않습니다. – Monkpit

+0

@ 스카 : 내가 이해 한대로 [이 Stackoverflow-post] (http://stackoverflow.com/questions/21378058/why-components-classes-is-undefined), 당신은 Components.classes를 사용할 수 없습니다. 일반 웹 페이지. 그것은 Firefox 확장/addons에서 사용하기위한 것입니다. – Stephanie

1

파이어 폭스가 이미 통합 인증 내장 (많은 사람들이 알고하지 않습니다)했습니다.
은 참조 :
http://justgeeks.blogspot.nl/2011/01/firefox-supports-integrated-windows.html

행운을 빕니다 : 여기 https://addons.mozilla.org/nl/firefox/addon/integrated-auth-for-firefox/

이 몇 가지 추가 설명입니다 https://developer.mozilla.org/en-US/docs/Integrated_Authentication 여기

구성을 용이하게 인기있는 파이어 폭스 부가 기능입니다!

3

다음 코드는 함수 호출로 온로드 이벤트 대신 나를 위해 작동 :

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); 
+7

묻는 사람은 * firefox *를 사용합니다. 이 대답은 M $ ActiveX를 사용합니다! 그것은 작동하지 않을 것이다 (그리고 나는 실제로 그것을 테스트했지만, 나는 믿을 수 없다). 실제로 파이어 폭스 용 ActiveX 플러그인 (일부 연령, FF2 시대 전후)이 있었지만 ActiveX는 이제 모질라 차단 목록에 있습니다. ([출처] (http://kb.mozillazine.org/ActiveX)). – GitaarLAB

+0

테스트되었지만이 코드는 Internet Explorer에서만 작동하며 Firefox에서는 작동하지 않습니다. 가장 좋은 옵션은 숨겨진 컨트롤/텍스트 상자 (서버 측) 뒤에있는 값을 유지하기 위해 필요한 값을 얻기 위해 자바 스크립트를 사용하는 것입니다. 현재의 추세를 고려할 때, 모두가 IE를 사용하여 더 이상 일을하지는 않습니다. – mutanic

+0

10 명의 담당자에게 추가 옵션이 있다는 것을 보여주는 데 문제가 있습니다. – pythonian29033

관련 문제