2016-06-16 20 views
0

私はウィンドウのユーザー名を取得しようとしているサーブレットが1つあります。正しいホスト名を取得していますが、異なるマシンに正しいユーザー名を取得できません。私は自分のマシンにそのサーブレットをデプロイしようとしましたが、その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が指摘したように

、これが唯一の開発段階ながら、ローカルマシンのために動作します。 JavaScriptのようなクライアント側の言語では、このようなセキュリティリスクのタスクは実行できません。このコード/プロジェクトを展開する場合、

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

は、クライアントのコンピュータを対象としません。サーバーシステムをターゲットにします。更新前のProof Here.

私はこれをテストし、それが働きました。

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

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

sourceあなたはあなたのコード、またはインデント4つのスペースをフォーマットするために、エディタでコードの書式設定ボタンを使用することができドラゴスRoban

+0

こんにちは、 私も以下のコードで試してみました。それはまた働いていない。 String username = Advapi32Util.getUserName(); 私のシナリオは、 私はサーバーボックス-1に私のweb-appを配備し、Admin1でログインしているとします。 ユーザー名がUSER1でログインしているシステムを使用してこのアプリケーションにアクセスすると、user1として値を取得する必要があります。 他のユーザーがUSER2でログインして同じアプリケーションにするUSER2をキャプチャする必要があります – user3452231

+0

JSP /サーブレットコードはwebbrowserではなくWebサーバーで実行されます。これは明らかにウェブサーバとウェブブラウザの両方が物理的に同じマシン上で実行されている場合にのみ「機能する」ことになります。通常はローカル開発中に起こります。 Web開発者はそれをよりよく知っているはずです。 – BalusC

+0

基本的に私は同じlanのウィンドウのすべてのログイン情報を必要とします。それはサーブレットで書かれた私のプログラムによって追跡されるべきです。上記で共有されたすべての論理を試してみました。しかし、常にそれは私のウィンドウのユーザー名を追跡しています。しかし、私が共有している同じURLを打つように他の人に頼むと仮定すると、ipは異なっています。問題が何であるかわからない場合は – user3452231

関連する問題