Я построил сайт, используя django и apache. У меня есть аутентификация apache ldap. Как получить имя пользователя после аутентификации пользователя на веб-сайте? Я хочу получить имя пользователя и представить его.Как получить имя пользователя после аутентификации? (apache)
ответ
Итак, вы используете аутентификацию Apache LDAP. Если вы используете mod_auth_ldap
, см. Документы здесь http://httpd.apache.org/docs/2.0/mod/mod_auth_ldap.html#frontpage. Если вы используете, смотрите документы здесь https://httpd.apache.org/docs/2.4/mod/mod_authnz_ldap.html#exposed.
Что говорят документы, когда пользователь аутентифицирован, Apache устанавливает переменную среды, к которой можно получить доступ из сценария CGI. Имя переменной зависит от версии, которую вы используете. Хотя Python использует WSGI, вы все равно должны пытаться получить переменную как переменную среды и должны быть доступны в любом случае.
В питоне, чтобы получить доступ к переменной окружения:
import os
username=os.getenv["REMOTE_USER"] #will return variable value or None
if username:
pass
#process username here
См документы об этой функции здесь: https://docs.python.org/3.5/library/os.html#os.getenv
Вы можете попробовать использовать это непосредственно в коде Python, где вы ожидаете имя пользователя. Или лучше использовать этот код в wsgi.py
в вашем проекте Django, и если доступно username
, добавьте специальный заголовок со своим значением, чтобы он был доступен внутри Django в request
, переданном в представления Django. Но не забудьте снять этот заголовок перед его добавлением, поэтому, если вредоносный пользователь подделывает заголовок, это не влияет на ваше приложение. Для получения дополнительной информации об этом см. https://docs.djangoproject.com/en/1.9/howto/deployment/wsgi/modwsgi/ и https://docs.djangoproject.com/en/1.9/howto/deployment/wsgi/apache-auth/.
Edit: Кстати, есть «Как-к» для REMOTE_USER
: https://docs.djangoproject.com/en/1.9/howto/auth-remote-user/
Edit: Если у вас нет каких-либо требований для выполнения аутентификации с Apache, вы можете выполнить проверку подлинности в Django приложения непосредственно, см.: https://pythonhosted.org/django-auth-ldap/ и в примере https://djangosnippets.org/snippets/901/.
Я проверил переменные среды (расширенные системные настройки > переменные окружения> и я не видел удаленной пользовательской переменной – ron
Это не глобальная переменная среды. Она устанавливается Apache внутри процесса после того, как конкретный пользователь получает аутентификацию и, следовательно, доступен только в этом процессе и его дочерних процессах. он доступен вам, возможно, вам придется изменить некоторые настройки Apache, см. ссылки, которые я предоставил для получения дополнительной информации. – Nikita
Спасибо большое за успех! – ron
- 1. Open id получить имя пользователя после успешной аутентификации
- 2. Как получить имя участника после аутентификации
- 3. Как получить имя пользователя после регистрации пользователя
- 4. SSO - Получить AD Имя пользователя с Apache
- 5. Получить имя пользователя в Аутентификации форм
- 6. JavaScript Имя пользователя аутентификации
- 7. Facebook получить имя пользователя без запроса аутентификации
- 8. Как получить имя пользователя от CAS в Apache Wicket
- 9. Как получить аутентифицированное имя пользователя под apache в коде python?
- 10. Как перенаправить пользователя после аутентификации
- 11. проблема аутентификации symfony после того, как имя пользователя изменилось
- 12. аутентификации пользователя после #create
- 13. Как получить имя и URL-адрес канала YouTube после аутентификации
- 14. зарегистрировать пользователя после аутентификации
- 15. аутентификации IIS7 для Windows (как получить имя пользователя из домена?)
- 16. Angular JS - Как получить имя пользователя от BASIC-аутентификации
- 17. Аурелия аутентификации: Как получить идентификатор пользователя
- 18. Как получить имя пользователя?
- 19. Как получить имя пользователя после действительной проверки подлинности
- 20. Python eve - как получить текущего пользователя после успешной аутентификации?
- 21. Passport.js: как получить доступ к объекту пользователя после аутентификации?
- 22. Как получить дополнительную информацию от пользователя после аутентификации извне?
- 23. symfony перенаправляет пользователя после аутентификации
- 24. MVC3 + Как получить текущее имя пользователя пользователя
- 25. firebase правило безопасности аутентификации имя пользователя отсутствует
- 26. Aurelia: Как получить имя пользователя пользователя пользователя
- 27. Получить Twitter Имя пользователя после oauth Аутентификация
- 28. использовать поддомен после аутентификации пользователя
- 29. Ошибка Apache Shiro SQL при аутентификации пользователя
- 30. Как получить имя пользователя после входа в систему с mod_auth_mellon?
Добро пожаловать на stackoverflow! Когда вы задаете вопрос, вы должны указать основной код, связанный с тем вопросом, который вы пробовали до сих пор. – doru
Я ничего не пробовал, я не знаю, как это сделать – ron
Вы используете [django-auth-ldap] (https://pythonhosted.org/django-auth-ldap/users.html)? – doru