2012-03-03 20 views
1

在Django中你可以從request.session字典閱讀_auth_user_id驗證您的身份和登錄的用戶之後。正如我在「正常」條件(標準認證後端)中所理解的那樣,它應該是用戶標識(pk)。當我使用django-auth-ldap作爲認證後端到底是什麼_auth_user_id(與Django的認證 - LDAP連接)?

但什麼是_auth_user_id?它返回整數,但在我的LDAP數據庫中沒有這樣的值。

回答

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。有關詳情和性能注意事項,請參閱文檔。