Get user windows php

retrieve windows username in php

I am new to php. Is it possible to find out the windows user name in php ?

Logon in windows domain with ‘user1’. I want to get the username in php in
my example : user1.

I am new to php. Is it possible to find out the windows user name in php ?

Logon in windows domain with ‘user1’. I want to get the username in php in
my example : user1.

Long answer: PHP is a server side language — it will read headers and form
data sent by the client browser, but it cannot request the data. I don’t
believe Javascript has access to this information either but I believe
ActiveX or perhaps ASP *might* give you this information.

To get a rough idea of what information PHP does read from a client web
browser, write the following simple script in to a file and visit it with
your web browser

Note: Different browsers deliver different headers so you cannot rely that
all the information you see in phpinfo() will be avialable every time.

I am new to php. Is it possible to find out the windows user name in php ?

Logon in windows domain with ‘user1’. I want to get the username in php in
my example : user1.

If you mean client-side then no, not with PHP. That kind of information
is not transmitted with the HTTP headers.

And I don’t know what it would good for on the server-side, since it
would most probably be the same all the time.

And I don’t know what it would good for on the server-side, since it would
most probably be the same all the time.

Can’t say I’ve tried, but I believe the info is in the manual about this
(with some pre-req’s of some kind?), but as for how useful, I see your
point, if it’s an Internet site.. but what if the OP is asking for info on
an Intranet? the windoze login could be as useful as perhaps, .htaccess /
..htpasswd authentication recognition. Not everyone is developing «public
Internet» sites (I obviously don’t know for sure what the OPs targets are) =)


Ian.H [Design & Development]
digiServ Network — Web solutions
www.digiserv.net | irc.digiserv.net | forum.digiserv.net
Programming, Web design, development & hosting.

I am new to php. Is it possible to find out the windows user name in php ?

Logon in windows domain with ‘user1’. I want to get the username in php in
my example : user1.

If the web server is in the same domain, i.e. intranet, try echoing
$_SERVER[‘LOGON_USER’] and $_SERVER[‘AUTH_USER’]. Might only work with IE
though.

A good start is generally having a phpinfo() running to check what headers &
information the browser sends to the server.

I am new to php. Is it possible to find out the windows user name in php ?

Logon in windows domain with ‘user1’. I want to get the username in php in
my example : user1.

To do this you need to add an extra module to Apache (assuming Apache
not IIS). This will do a lookup on the domain controller to work out who
the user is.

Carved in mystic runes upon the very living rock, the last words of
Johan den Boer of comp.lang.php make plain:

You might have more success asking in a Windows and/or IIS forum, as to how
you can get the user name into the server environment.

Long answer: PHP is a server side language — it will read headers and form
data sent by the client browser, but it cannot request the data. I don’t
believe Javascript has access to this information either but I believe
ActiveX or perhaps ASP *might* give you this information.

Not sure if this is patched yet, but.

may be of some use to you. Plug in a sniffer and see what’s happening.

Also, stepping away from PHP, and into some client-side scripting:

Источник

get_current_user

Returns the name of the owner of the current PHP script.

Parameters

This function has no parameters.

Return Values

Returns the username as a string.

Examples

Example #1 get_current_user() example

The above example will output something similar to:

Current script owner: SYSTEM

See Also

  • getmyuid() — Gets PHP script owner’s UID
  • getmygid() — Get PHP script owner’s GID
  • getmypid() — Gets PHP’s process ID
  • getmyinode() — Gets the inode of the current script
  • getlastmod() — Gets time of last page modification

User Contributed Notes 7 notes

to get the username of the process owner (rather than the file owner), you can use:

$processUser = posix_getpwuid ( posix_geteuid ());
print $processUser [ ‘name’ ];
?>

On Centos, the Red Hat linux clone, this instruction gives the file’s OWNER (the first parameter in instruction ‘chown’). It does not reveal the file’s GROUP.

get_current_user() does NOT reveal the current process’ user’s identity.

See: posix_getuid() — Return the real user ID of the current process

The information returned by get_current_user() seems to depend on the platform.

Using PHP 5.1.1 running as CGI with IIS 5.0 on Windows NT, get_current_user() returns the owner of the process running the script, *not* the owner of the script itself.

It’s easy to test — create a file containing:

echo get_current_user ();
?>

Then access it through the browser. I get: IUSR_MACHINE, the Internet Guest Account on Windows, which is certainly not the owner of the script.

Further testing of behaviour on Windows vs Linux.

On Linux this function is indeed returning the owner of the script. If you want to know the username PHP is running as you can use POSIX functions (or shell_exec with ‘whoami’).

On Windows this function is returning the username PHP is running as. Both for IIS (IUSR) and Apache (SYSTEM — which comes from the fact Apache is a service on Windows).

The behaviour on Windows is actually useful given that POSIX functions aren’t available. If you need to find the owner of the script on Windows perhaps the best way is to shell_exec to use dir /Q, and parse that.

Since this only returns the file owner and not the actual user running the script, an alternative in Linux is:

$current_user = trim ( shell_exec ( ‘whoami’ ));
?>

If you want to get the name of the user who executes the current PHP script, you can use

$username = getenv ( ‘USERNAME’ ) ?: getenv ( ‘USER’ );
echo $username ; // e.g. root or www-data
?>

If you have userdir enabled, get_current_user() returns the username of the user hosting the public_html. For example, http://example.com/~bobevans/somescript.php will return bobevans when calling get_current_user().

  • PHP Options/Info Functions
    • assert_​options
    • assert
    • cli_​get_​process_​title
    • cli_​set_​process_​title
    • dl
    • extension_​loaded
    • gc_​collect_​cycles
    • gc_​disable
    • gc_​enable
    • gc_​enabled
    • gc_​mem_​caches
    • gc_​status
    • get_​cfg_​var
    • get_​current_​user
    • get_​defined_​constants
    • get_​extension_​funcs
    • get_​include_​path
    • get_​included_​files
    • get_​loaded_​extensions
    • get_​required_​files
    • get_​resources
    • getenv
    • getlastmod
    • getmygid
    • getmyinode
    • getmypid
    • getmyuid
    • getopt
    • getrusage
    • ini_​alter
    • ini_​get_​all
    • ini_​get
    • ini_​parse_​quantity
    • ini_​restore
    • ini_​set
    • memory_​get_​peak_​usage
    • memory_​get_​usage
    • memory_​reset_​peak_​usage
    • php_​ini_​loaded_​file
    • php_​ini_​scanned_​files
    • php_​sapi_​name
    • php_​uname
    • phpcredits
    • phpinfo
    • phpversion
    • putenv
    • set_​include_​path
    • set_​time_​limit
    • sys_​get_​temp_​dir
    • version_​compare
    • zend_​thread_​id
    • zend_​version
    • get_​magic_​quotes_​gpc
    • get_​magic_​quotes_​runtime
    • restore_​include_​path

    Источник

    Можете ли вы получить имя пользователя Windows (AD) в PHP?

    У меня есть веб-приложение PHP в интрасети, которое может извлекать IP-адрес и имя хоста текущего пользователя на этой странице, но мне было интересно, есть ли способ получить/извлечь их имя пользователя Active Directory/Windows. Возможно ли это?

    16 ответов

    Проверьте переменную запроса AUTH_USER . Это будет пустым, если ваше веб-приложение разрешает анонимный доступ, но если ваш сервер использует базовую или интегрированную проверку подлинности Windows, он будет содержать имя пользователя аутентифицированного пользователя. В домене Active Directory, если ваши клиенты работают с Internet Explorer, и ваши разрешения на веб-сервер/файловую систему настроены правильно, IE будет тихо отправлять свои учетные данные домена на ваш сервер, а AUTH_USER будет MYDOMAIN\user.name без того, чтобы пользователи, для явного входа в ваше веб-приложение.

    только IE пропускает ваши учетные данные, другие браузеры просто запрашивают, и в этом случае вам просто нужно предоставить свои доменные учетные данные (домен \ имя пользователя и пароль).

    Firefox также поддерживает (автоматическую) интегрированную аутентификацию. см. developer.mozilla.org/en/Integrated_Authentication

    Если мое приложение выполняет разумные операции: могу ли я доверять переданному AUTH_USER? Клиенты являются частью хорошо управляемой корпоративной интрасети. Кроме AUTH_USER, мне нужно знать, принадлежит ли пользователь определенной группе. Эта информация тоже будет передана? И, наконец, есть ли у вас URL с описанием вашей информации?

    Спасибо за этот ответ. Необходимо помнить, чтобы отключить анонимный доступ в IIS и включить встроенную проверку подлинности Windows. Используя Intraweb, можно получить аутентифицированного пользователя, используя WebApplication.Request.GetFieldByName (‘AUTH_USER’).

    У меня есть встроенная проверка подлинности Windows, и даже с IE пользователь спрашивает. Я не могу заставить его работать с IIS.

    @Simurr это не просто возможно с IE, большинство других браузеров поддерживают его, но только в IE он включен по умолчанию для всего интернета, а остальные вы должны включить его вручную, прежде чем использовать его, для Firefox вы можете использовать это дополнение или вручную установите конфигурацию addons.mozilla.org/en-GB/firefox/addon/…

    @MikeT, учитывая, что мой комментарий был от ’08, вероятно, это было возможно только в IE, хотя я только смутно помню, как изучал его. Приятно знать, что это работает сейчас.

    Спасибо команда. Но мой случай другой. У меня есть много приложений, размещенных на одном сервере. Поэтому я хотел получить учетные данные AD с компьютера локального пользователя только для одного приложения. Если я включу Аутентификацию AD и отключу анонимный доступ, все другие приложения также будут заполнены для учетных данных AD. Поэтому, пожалуйста, предложите, что я могу сделать только для индивидуального применения.

    У меня есть php mysql, работающий на IIS. Я могу использовать $_SERVER[«AUTH_USER»] , если я включу проверку подлинности Windows в IIS → Аутентификация и отключить анонимную аутентификацию (важно)

    Я использовал это, чтобы получить мой пользователь и домен:

    $user вернет значение, подобное: DOMAIN\username в нашей сети, а затем это просто случай удаления DOMAIN\ из строки.

    Это работает в IE, FF, Chrome, Safari (проверено).

    У меня php работает на IIS, и для этого сайта включена только аутентификация Windows. У меня нет этой информации. Что я мог перепроверить?

    Посмотрите на функции библиотеки PHP LDAP: http://us.php.net/ldap.

    Active Directory [в основном] соответствует стандарту LDAP.

    Если вы используете Apache в Windows, вы можете установить mod_auth_sspi из

    Инструкции находятся в файле INSTALL, и есть пример whoami.php. (Это просто случай копирования файла mod_auth_sspi.so в папку и добавления строки в httpd.conf.)

    После установки и установки необходимых настроек в httpd.conf для защиты нужных вам каталогов PHP заполнит $_SERVER[‘REMOTE_USER’] пользователем и доменом (‘USER\DOMAIN’) аутентифицированного пользователя в IE — — или запросить и подтвердить подлинность в Firefox перед передачей.

    Информация основана на сеансах, поэтому единый вход (ish) возможен даже в Firefox.

    Возможно, вы аутентифицируете пользователя в Apache с mod_auth_kerb, требуя аутентифицированного доступа к некоторым файлам. Я так думаю, что имя пользователя также должно быть доступно в переменных среды PHP где-то. вероятно, лучше для проверки с помощью после его запуска.

    Источник

    Читайте также:  Java create file in temp directory
Оцените статью