コンピューターにログオンした人のユーザー名をphpまたはjavascriptで取得できるかどうか疑問に思っていました。たとえば、ラップトップを使用してコンピューターにログインし、Web サイトにアクセスした場合、ログインに使用した名前を表示する必要があります。
これを行う方法はありますか、それとも不可能ですか
コンピューターにログオンした人のユーザー名をphpまたはjavascriptで取得できるかどうか疑問に思っていました。たとえば、ラップトップを使用してコンピューターにログインし、Web サイトにアクセスした場合、ログインに使用した名前を表示する必要があります。
これを行う方法はありますか、それとも不可能ですか
これは、PHP や Javascript では不可能です。
サーバーに送信されたヘッダーを見て、送信されたデータを確認できます ( getallheaders )。
他の人が示唆しているように、ホスト コンピューターとより緊密に統合するプラグインを使用して、この情報を取得できます。
単なるログイン (ユーザー ID) の場合:
<?php echo filter_input(INPUT_SERVER, 'LOGON_USER'); ?>
これはと同じです
<?php echo $_SERVER['LOGON_USER']; ?>
あなたも使うことができます
<?php
foreach ($_SERVER as $var => $value){
echo "$var => $value<br />";
}
?>
サーバーまたはローカルホストで利用可能なスーパーグローバル $_SERVER のすべての可能な値を表示します。
PHP はサーバー側です。Active Directory のような PHP Web サーバー プラグインを使用する必要があります。ただし、ユーザーはサイトで認証する必要があります。単に「プル」することはできません
実際、Apache NTLM モジュールがあれば可能です。ただし、サーバーにインストールできる必要があります。したがって、ホストされたボックスの場合、おそらく機能しません。欠点は、IEでしか機能しないことです。
NTLM は、Microsoft Internet Informations Server(tm) および Microsoft Internet Explorer(tm) で使用される認証プロトコルです。これは実際には安全ではありませんが、バックグラウンド認証を提供します (ユーザーのワークステーション ログオン資格情報が Web サーバーに渡されます)。この機能は、これらの Microsoft 製品に基づくイントラネットで広く使用されています。
PHP はサーバー側のスクリプト エンジンであり、ブラウザーがサーバーに送信するもの以外はクライアントについて何も認識していませんが、ユーザー名はありません。
JavaScript と同じ - これはクライアント側で動作しますが、Web ページとユーザー名を共有すると重大なセキュリティ上の欠陥になる可能性があります。Web サイトは、ユーザーの機密データから遠ざける必要があります。
最後に、一部のシステムではユーザー プロファイルが実装されていない場合があります (携帯電話やスマートフォンなど)。その場合、何が送信されますか?