- PR -

システムログインユーザの取得

投稿者投稿内容
MRT
会議室デビュー日: 2004/12/06
投稿数: 6
投稿日時: 2004-12-06 17:31
WebブラウザとJSPを用いて画面上にローカルのユーザ名を取得しようとしているのですが、
"SYSTEM"としか表示されず、困っているのでお力添えをいただきたく。

構成そのものは、サーバサイドにして、
Java関連をサーバに置き、クライアントからWebブラウザを介してアクセスしています。

ここで、ブラウザでJSPファイルにアクセスした際に、クライアントの起動時に入力した
ユーザ名を取得しようとしているのですがうまくいかず、悩んでおります。

ローカルのみで行ってみた場合は、getProperty("user.name")で取れたので、
サーバサイドでもいけるかと思ったのですが。

------------------------------------------------------
<%@ page contentType="text/html; charset=Shift_JIS"%>
<%@ page import ="java.sql.*" %>
<%@ page import ="java.util.*" %>
<%@ page import ="java.io.*" %>
<HTML>
<HEAD>
 ・
 ・
 ・
// String UserName = System.getProperty("user.name").toString();
String UserName = System.getProperty("user.name");
 ・
 ・
 ・
<DIV align="center">
<Form name="delSelect">
<TABLE border="1" bgcolor="#ffffff">
<TBODY>
<TR bgcolor="#f3b352">
<TD align="center" nowrap><B>ユーザ名</B></TD>
</TR>
<TR bgcolor="#f3b352">
<TD align="center" nowrap><B><%= UserName %></B></TD>
</TR>
 ・
 ・
 ・

といった感じになっています。
HTMLに尾ひれ背びれがついた程度なのですが、ここがどうしてもうまくいかず、
逆にファイルの読み書きなどがすんなりいってしまったので・・・。

PCの構成自体は、サーバにWindowsNT4.0(SP6)、クライアントにWindows2000(SP2)を用いています。

また、Javaの実行環境にはtomcat5.0 + Java 2 SDK 1.4.2を用いています。
striver
会議室デビュー日: 2004/12/03
投稿数: 15
投稿日時: 2004-12-06 17:46

下記のようにユーザー情報を取得してみてください。
私も大体この構成でユーザーのLOGIN番号を
取得しています。

String user_name;
user_name = request.getHeader("user.name");

以上
かつのり
ぬし
会議室デビュー日: 2004/03/18
投稿数: 2015
お住まい・勤務地: 札幌
投稿日時: 2004-12-06 17:56
引用:

クライアントの起動時に入力した ユーザ名


windowsのログインのユーザ名の事ですか?
getProperty("user.name")の事を言っているので多分そのことだと思いますが。

引用:

"SYSTEM"としか表示されず


getProperty("user.name")はVMが実行されているユーザ名を返します。
クライアントではVMが実行されていませんよね?
ですからSYSTEMアカウントで起動されていて、"SYSTEM"が返ってくるのではないでしょうか。

サーブレットでクライアントの情報を取得したい場合は、
クライアント側から明示的に渡す必要があります。
しかし、実行ユーザ名はブラウザ(IE)でActiveXなしに取得することはできません。
MRT
会議室デビュー日: 2004/12/06
投稿数: 6
投稿日時: 2004-12-06 17:58
striverさん>

早速の回答ありがとうございます。
こちらで引用して試してみたところ、結果の表示は"null"となり、
ユーザ名は取得できませんでした。

何か別にすることがあるのかもしれませんが、それもちょっと見当がつかないです(汗)
nullとなっていることから、ヘッダ(?)にユーザ名が入っていないのだろうとは思いますが。
かつのり
ぬし
会議室デビュー日: 2004/03/18
投稿数: 2015
お住まい・勤務地: 札幌
投稿日時: 2004-12-06 18:03
引用:

striverさんの書き込み (2004-12-06 17:46) より:

下記のようにユーザー情報を取得してみてください。
私も大体この構成でユーザーのLOGIN番号を
取得しています。

String user_name;
user_name = request.getHeader("user.name");

以上




あれ?リクエストヘッダにユーザ名が含まれてましたっけ?
MRT
会議室デビュー日: 2004/12/06
投稿数: 6
投稿日時: 2004-12-06 18:12
かつのりさん>

返答いただきありがとうございます。


> windowsのログインのユーザ名の事ですか?
> getProperty("user.name")の事を言っているので多分そのことだと思いますが。

その通りです。

> getProperty("user.name")はVMが実行されているユーザ名を返します。
> クライアントではVMが実行されていませんよね?
> ですからSYSTEMアカウントで起動されていて、"SYSTEM"が返ってくるのではないでしょうか。

VMというのがよくわかりませんが、たしかに単純に、JavaのSDKとtomcatをインストールしただけです。

> サーブレットでクライアントの情報を取得したい場合は、
> クライアント側から明示的に渡す必要があります。
> しかし、実行ユーザ名はブラウザ(IE)でActiveXなしに取得することはできません。

これは、ActiveXをJavaで利用できるようにしないと取得は不可能ということでしょうか?
で、ActiveXの機能でユーザ名をJavaのVMとやらに渡して、JavaはVMから取得するというような認識でよいのでしょうか?
striver
会議室デビュー日: 2004/12/03
投稿数: 15
投稿日時: 2004-12-06 18:15
ちょっと確認ですけど、ユーザーがJSPファイルにアクセスする
時にDIALOGボックスが表示されて、そこでユーザー名と
PASSWORDとかなどを記入している仕組みでしょうか?

もし上記のようだとしたら、間違いなく、うまくいくと思います。
String user_name;
user_name = request.getHeader("user.name");
因みに、request.getHeader("")に入れるものは
ユーザーのLOGIN PROPERTYです。
”user.name”のほうはちょっと怪しいかも。


[ メッセージ編集済み 編集者: striver 編集日時 2004-12-06 18:16 ]
MRT
会議室デビュー日: 2004/12/06
投稿数: 6
投稿日時: 2004-12-06 18:34
striverさん>

> ちょっと確認ですけど、ユーザーがJSPファイルにアクセスする
> 時にDIALOGボックスが表示されて、そこでユーザー名と
> PASSWORDとかなどを記入している仕組みでしょうか?

いえ、そういった作りではないです。
WindowsのNT系であれば、自動、または手動で、
起動時に、ユーザ名とパスワードを入力しますが、
その情報を取得したいと考えています。

Javaプログラム単体の情報ではなく、システムの環境変数(?)に該当する部分からの取得・・・になるでしょうか。


最初にDOSプロンプトレベルで単純に
System.getPropertyとして、ユーザ名を取得し、
それをprintlnで出力すると、ログインユーザ名が取得できるのですが、
それを、サーバサイドのプログラムで行いたいといったところです。

文章が下手な上、情報不足で申し訳ありません。

スキルアップ/キャリアアップ(JOB@IT)