Раньше я использовал сервер IIS в качестве PHP-сервера. В настоящее время это apache.
В IIS я мог получить доступ к переменной $_SERVER ['REMOTE_USER']
, которая возвращает имя пользователя и домен (например, домен\пользователь), но после установки XAMPP эта переменная недоступна.
Что я должен сделать, чтобы снова получить эту переменную?
Мое приложение находится в локальной сети без подключения к Интернету
Наконец-то он работает!: D
-
Загрузите модуль здесь https://www.apachehaus.net/modules/mod_authnz_sspi/ (x86 для 32-разрядных и x64 для 64-разрядного apache)
-
Скопируйте папку mod_authnz_sspi.so из
Apache24\modules
и поместите ее в папку модулей вашей папки Apache на веб-сервере -
В файле httpd.conf(файл конфигурации для вашего apache) поместите эту строку кода. Попробуйте загрузить это как последний модуль:
LoadModule authnz_sspi_module modules/mod_authnz_sspi.so
-
Убедитесь, что следующие модули раскоментированы
LoadModule authn_core_module modules/mod_authn_core.so
LoadModule authz_core_module modules/mod_authz_core.so
PS: для этого необходимы оба вышеуказанных модуля.
-
Поместите следующий код в файл httpd.conf
<Directory "path/to/your/htcdocs/folder"> Options None AllowOverride All Order allow,deny Allow from all #AuthName "SSPI Protected Place" AuthType SSPI SSPIAuth On SSPIAuthoritative On SSPIOfferBasic On SSPIOmitDomain On Require valid-user </Directory>
-
Перезапустите службу apache и, надеюсь, он перезагрузится без каких-либо проблем.
- Теперь, чтобы распознать пользователя, используйте следующий код на странице php
echo $_SERVER [‘PHP_AUTH_USER’];
Что все.
Я использую:
- Панель управления XAMPP 3.2.1
- APACHE 2.4
<Directory "path/to/your/htcdocs/folder">
Options None
AllowOverride All
Order allow,deny
Allow from all
#AuthName "SSPI Protected Place"
AuthType SSPI
SSPIAuth On
SSPIAuthoritative On
SSPIOfferBasic On
SSPIOmitDomain On
Require valid-user
</Directory>
Если вы используете ModRewrite или другое, я предлагаю вам сохранить
Options Indexes FollowSymLinks Includes ExecCGI
иначе вы получите сообщение об ошибке, например
[rewrite:error]: Options FollowSymLinks and SymLinksIfOwnerMatch are both off, so the RewriteRule directive is also forbidden due to its similar ability to circumvent directory restrictions
Вы можете получить доступ только к удаленному пользователю, если Apache фактически аутентифицировал пользователя, отметьте apache auth howto.
Я сражался с этим в течение долгого времени, оказалось, что мне пришлось установить VC, распространяемый, чтобы заставить его работать.