在 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']
,无论您的后端如何,都应该是 User pk。当然,作为一项规则,您会request.user
为了方便而访问。
如果您使用 django-auth-ldap 并且需要返回 LDAP 用户,您可以查看request.user.ldap_user
. 有关详细信息和性能注意事项,请参阅文档。