Что именно является _auth_user_id (в связи с django-auth-ldap)? - PullRequest
1 голос
/ 03 марта 2012

В Django вы можете прочитать _auth_user_id из request.session словаря после аутентификации и входа в систему пользователя.Как я понимаю, в «нормальных» условиях (стандартный бэкэнд аутентификации) это должен быть идентификатор пользователя (pk).

Но что такое _auth_user_id, когда я использую django-auth-ldap в качестве бэкенда аутентификации?Он возвращает целые числа, но в моей базе данных LDAP таких значений нет.

1 Ответ

1 голос
/ 04 марта 2012

Каждый сервер аутентификации Django - включая django-auth-ldap - в конечном итоге возвращает экземпляр django.contrib.auth.models.User при успешной аутентификации. В свою очередь, django.contrib.sessions знает только об этих пользовательских объектах; он не знает и не заботится о том, какой сервер их создал. Таким образом, request.session['_auth_user_id'] должен быть пользователем pk независимо от вашего бэкэнда. Как правило, вы, конечно, для удобства заходите на request.user.

Если вы используете django-auth-ldap и вам нужно вернуться к пользователю LDAP, вы можете посмотреть на request.user.ldap_user. См. Документацию для деталей и соображений производительности.

...