究竟是什么_auth_user_id(与django-auth-ldap有关)?

时间:2012-03-03 16:24:08

标签: django session authentication django-auth-ldap

在Django中,您可以在验证并登录用户后从_auth_user_id字典中读取request.session。据我所知,在“正常”条件下(标准身份验证后端),它应该是用户ID(pk)。

但是当我使用_auth_user_id作为身份验证后端时,django-auth-ldap是什么?它返回整数,但我的LDAP数据库中没有这样的值。

1 个答案:

答案 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。有关详细信息和性能注意事项,请参阅文档。