2016-06-16 10 views
0

Windows 사용자 이름을 얻으려는 서블릿이 하나 있습니다. 올바른 호스트 이름을 얻었지만 다른 컴퓨터에 대해 올바른 사용자 이름을 얻을 수 없습니다. 내 서블릿을 내 컴퓨터에 배포하고 URL을 다른 사람들과 공유하려고 시도했다. URL을 입력하면 컴퓨터 사용자 이름 (윈도우)이 표시되고 다른 사용자는 표시되지 않습니다. 나는 아래 코드로 시도 :서블릿/JSP에서 Windows 클라이언트 로그인 사용자 이름 얻기

String userName = new com.sun.security.auth.module.NTSystem().getName(); 

String userName = System.getProperty(“username”); 

내 서블릿에서

System.getProperty("user.name"); 

나는 그것을 확인하려고을, 내가 다른 사람에게 내 URL을 공유하고 있지만, 항상 내 사용자 이름과 같은 사용자 이름을 얻고 있지만 올바른 호스트 이름을 얻고 있습니다.

제발 나를 제안 해주세요.

+0

당신은 당신의 코드 또는 들여 쓰기 네 개의 공간을 포맷 편집기에서 버튼을 서식 코드를 사용할 수 있습니다. – AlBlue

답변

-1

업데이트 : 씨 BalusC는 지적

,이 로컬 머신 동안 개발 단계에 대한 작동합니다. 자바 스크립트와 같은 클라이언트 측 언어는 그러한 보안 위험 작업을 수행 할 수 없습니다. 이 코드/프로젝트를 배포 할 때

System.getenv().get("USERNAME"); 

은 클라이언트의 컴퓨터를 대상으로하지 않습니다. 서버 시스템을 대상으로합니다. 업데이트 전에 Proof Here.

는 :

나는이 테스트, 그것은했다.

System.getenv().get("USERNAME") 

// Servlet 
yourPrintWriter.println(System.getenv().get("USERNAME") + " is the username."); 

source는 드라고 Roban에 의해 마지막 대답

+0

안녕하세요, 나는 아래 코드를 사용해 봤습니다. 그것은 또한 작동하지 않습니다. String username = Advapi32Util.getUserName(); 내 시나리오 : 서버 1에 내 web-app를 배포하고 Admin1로 로그인 해보십시오. 이제 사용자 이름이 USER1로 로그인 한 시스템을 사용하여이 응용 프로그램에 액세스 할 때 user1 값을 가져와야합니다. 다른 사용자가 USER2로 로그인하여 동일한 애플리케이션에 액세스 할 때 USER2가 캡처해야합니다. – user3452231

+0

JSP/서블릿 코드는 웹 브라우저가 아닌 웹 서버에서 실행됩니다. 웹 서버와 웹 브라우저가 동시에 물리적으로 동일한 시스템에서 동시에 실행될 때 이것은 분명히 "작동"할 것입니다. 일반적으로 로컬 개발 중에 만 발생합니다. 웹 개발자는이를 잘 알아야합니다. – BalusC

+0

기본적으로 나는 모든 로그인 정보를 동일한 LAN에있는 창에 넣기를 원합니다. 그것은 서블릿에 작성된 프로그램에 의해 추적되어야합니다. 위의 모든 논리를 시도했습니다. 그러나 항상 내 창 사용자 이름을 추적하고 있습니다. 그러나 다른 사람들이 나에게 공유 된 동일한 URL을 치도록 요청할 것이라고 가정 할 때 ip가 다가오고 있습니다. 확실하지 않은 것은 무엇이 문제입니까 – user3452231

관련 문제