在Django中,您可以在验证并登录用户后从_auth_user_id
字典中读取request.session
。据我所知,在“正常”条件下(标准身份验证后端),它应该是用户ID(pk)。
但是当我使用_auth_user_id
作为身份验证后端时,django-auth-ldap
是什么?它返回整数,但我的LDAP数据库中没有这样的值。
答案 0 :(得分:1)
每个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
。有关详细信息和性能注意事项,请参阅文档。