Djangoでは、ユーザーを認証してログインした後、辞書_auth_user_id
から読み取ることができます。request.session
「通常の」条件(標準認証バックエンド)で理解しているように、ユーザーID(pk)である必要があります。
しかし、認証バックエンドとして_auth_user_id
使用しているときはどうなりますか? django-auth-ldap
整数を返しますが、LDAP データベースにそのような値はありません。
Djangoでは、ユーザーを認証してログインした後、辞書_auth_user_id
から読み取ることができます。request.session
「通常の」条件(標準認証バックエンド)で理解しているように、ユーザーID(pk)である必要があります。
しかし、認証バックエンドとして_auth_user_id
使用しているときはどうなりますか? django-auth-ldap
整数を返しますが、LDAP データベースにそのような値はありません。
すべての 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
. 詳細とパフォーマンスに関する考慮事項については、ドキュメントを参照してください。