Czy możesz uzyskać nazwę Użytkownika Windows (AD) w PHP?
Mam aplikację internetową PHP w intranecie, która może wyodrębnić adres IP i nazwę hosta bieżącego użytkownika na tej stronie, ale zastanawiałem się, czy jest sposób, aby uzyskać/wyodrębnić ich nazwę Użytkownika Active Directory/Windows, jak również. Czy to możliwe?
15 answers
Sprawdź zmienną AUTH_USER
request. Ta opcja będzie pusta, jeśli Twoja aplikacja internetowa umożliwia dostęp anonimowy, ale jeśli serwer korzysta z uwierzytelniania podstawowego lub zintegrowanego systemu Windows, będzie ona zawierać nazwę użytkownika uwierzytelnionego użytkownika.
W domenie Active Directory, jeśli twoi klienci korzystają z programu Internet Explorer, a uprawnienia serwera WWW/systemu plików są skonfigurowane poprawnie, IE po cichu prześle swoje poświadczenia domeny do twojego serwera i AUTH_USER
będzie MYDOMAIN\user.name
bez konieczności używania przez użytkowników aby jawnie zalogować się do aplikacji internetowej.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-10-11 04:38:17
Mam PHP mysql uruchomiony na IIS-mogę użyć $_SERVER["AUTH_USER"]
Jeśli włączam uwierzytelnianie systemu Windows w IIS - > uwierzytelnianie i wyłączam uwierzytelnianie anonimowe (ważne)
Użyłem tego, aby uzyskać mojego użytkownika i domenę:
$user = $_SERVER['AUTH_USER'];
$user
zwróci wartość np.: DOMAIN\username
w naszej sieci, a następnie będzie to tylko przypadek usunięcia DOMAIN\
z ciągu znaków.
To działa w IE, FF, Chrome, Safari (testowane) do tej pory.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-10-11 04:30:34
Spójrz na funkcje biblioteki PHP LDAP: http://us.php.net/ldap .
Active Directory [głównie] jest zgodny ze standardem LDAP.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-10-03 19:57:39
Jeśli używasz Apache w systemie Windows, możesz zainstalować mod_auth_sspi z
Http://www.gknw.at/development/apache/httpd-2.2/win32/modules/mod_auth_sspi-1.0.4-2.2.2.zip
Instrukcje są w pliku instalacyjnym i jest whoami.przykład php. (To tylko przypadek skopiowania mod_auth_sspi.so plik do folderu i dodanie linii do httpd.conf.)
Po zainstalowaniu i dokonaniu niezbędnych ustawień w httpd.conf do ochrony katalogów, które jeśli chcesz, PHP wypełni $_SERVER['REMOTE_USER']
z użytkownikiem i domeną ('USER\DOMAIN') uwierzytelnionego użytkownika w IE -- lub poprosi i uwierzytelni w Firefoksie przed przekazaniem go.
Info jest oparte na sesji, więc pojedynczy (ish) signon jest możliwy nawet w Firefoksie...
-Craig
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-12-24 12:02:58
Mógłbyś prawdopodobnie uwierzytelnić użytkownik w Apache z mod_auth_kerb wymagając uwierzytelnionego dostępu do niektórych plików ... myślę, że w ten sposób nazwa użytkownika powinna być również dostępna w zmiennych środowiskowych PHP gdzieś ... prawdopodobnie najlepiej sprawdzić za pomocą <?php phpinfo(); ?>
po uruchomieniu.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-10-03 20:13:08
Nie. Ale to, co możesz zrobić, to pozwolić administratorowi Active Directory włączyć LDAP, aby użytkownicy mogli zachować jeden zestaw poświadczeń
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-10-03 19:56:55
Sprawdź poprawiony moduł uwierzytelniania NTLM dla Apache https://github.com/rsim/mod_ntlm
Oparty na module NTLM auth dla Apache / Unix http://modntlm.sourceforge.net/
Czytaj więcej na http://blog.rayapps.com/
Źródło: http://imthi.com/blog/programming/leopard-apache2-ntlm-php-integrated-windows-authentication.php
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-10-26 06:49:35
Jeśli szukasz zdalnego identyfikatora użytkownika / nazwy użytkownika, Użyj:
echo gethostbyaddr($_SERVER['REMOTE_ADDR']);
Dostaniesz coś w rodzaju iamuser1-mys.corp.company.com
Filtruj resztę domeny za, a będziesz mógł uzyskać tylko idsid.
Aby uzyskać więcej informacji odwiedź http://lostwithin.net/how-to-get-users-ip-and-computer-name-using-php/
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-12-21 08:29:50
Możesz powiedzieć getenv('USERNAME')
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-07-07 14:51:30
Get_user_name działa tak samo jak getenv ('nazwa użytkownika');
Miałem problemy z kodowaniem (cyrylicą) używając getenv ('USERNAME')
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-04-24 07:58:04
Odwołanie próbuje również dowiedzieć się, czy AUTH_USER jest częścią określonej grupy domen; sprytnym sposobem na to jest utworzenie zablokowanego folderu z plikami tekstowymi (może być pusty). Ustaw security na Grupę security/distro, którą chcesz zweryfikować. Po uruchomieniu @file_get_contents (
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-12-16 12:52:03
Mamy wiele domen w naszym środowisku, więc używam preg_replace z regex, aby uzyskać tylko nazwę Użytkownika bez domeny\ .
preg_replace("/^.+\\\\/", "", $_SERVER["AUTH_USER"]);
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-01-28 22:06:29
Jest to prosty przykład integracji NTLM AD, umożliwia jednokrotne logowanie za pomocą Internet Explorera, wymaga logowania/konfiguracji w innych przeglądarkach.
Przykład PHP
<?php
$user = $_SERVER['REMOTE_USER'];
$domain = getenv('USERDOMAIN');
?>
W Twoim Apache httpd.plik conf
LoadModule authnz_sspi_module modules/mod_authnz_sspi.so
<Directory "/path/to/folder">
AllowOverride All
Options ExecCGI
AuthName "SSPI Authentication"
AuthType SSPI
SSPIAuth On
SSPIAuthoritative On
SSPIOmitDomain On
Require valid-user
Require user "NT AUTHORITY\ANONYMOUS LOGON" denied
</Directory>
A jeśli potrzebujesz modułu, ten link jest przydatny:
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-07-28 11:50:32
Wypróbuj ten kod:
$user= shell_exec("echo %username%");
echo "user : $user";
Otrzymujesz nazwę Użytkownika windows (AD) w php
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-03-07 16:21:20
Próbowałem prawie wszystkich tych sugestii, ale wszystkie zwracały puste wartości. Jeśli ktoś jeszcze ma ten problem, znalazłem tę przydatną funkcję na php.net ( http://php.net/manual/en/function.get-current-user.php):
get_current_user();
$username = get_current_user();
echo $username;
To był jedyny sposób, w jaki udało mi się w końcu uzyskać nazwę użytkownika active directory. Jeśli żadna z powyższych odpowiedzi nie zadziałała, spróbuj.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-06-19 20:31:51