Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Django用户julienb没有要填充的配置文件_Python_Django_Django Authentication_Django Auth Ldap - Fatal编程技术网

Python Django用户julienb没有要填充的配置文件

Python Django用户julienb没有要填充的配置文件,python,django,django-authentication,django-auth-ldap,Python,Django,Django Authentication,Django Auth Ldap,我正在尝试通过ldap登录管理站点。 用户可以在ldap中找到。我的问题是,每次我尝试登录时,都会出现此错误 search_s('ou=utilisateurs,ou=employee,dc=bi,dc=invik,dc=lu', 2, '(SAMAccountName=%(user)s)')returned 1 objects: cn=julien boelen,ou=utilisateurs,ou=employee,dc=bi,dc=invik,dc=lu search_s('ou=uti

我正在尝试通过ldap登录管理站点。 用户可以在ldap中找到。我的问题是,每次我尝试登录时,都会出现此错误

search_s('ou=utilisateurs,ou=employee,dc=bi,dc=invik,dc=lu', 2, '(SAMAccountName=%(user)s)')returned 1 objects: cn=julien boelen,ou=utilisateurs,ou=employee,dc=bi,dc=invik,dc=lu

search_s('ou=utilisateurs,ou=employee,dc=bi,dc=invik,dc=lu', 2, '(SAMAccountName=%(user)s)')returned 1 objects: cn=julien boelen,ou=utilisateurs,ou=employee,dc=bi,dc=invik,dc=lu

Populating Django user julienb

Populating Django user julienb

Django user julienb does not have a profile to populate

Django user julienb does not have a profile to populate
显然,我不能登录到管理网站。 我不知道如何告诉django“不要使用个人资料!!让我登录”

这是我的设置.py

AUTHENTICATION_BACKENDS = (

     'django_auth_ldap.backend.LDAPBackend',
     'django.contrib.auth.backends.ModelBackend',                    

)

AUTH_LDAP_SERVER_URI = "ldap://192.168.1.5/"
AUTH_LDAP_CONNECTION_OPTIONS = {
        ldap.OPT_DEBUG_LEVEL: 0,
        ldap.OPT_REFERRALS: 0,
}


AUTH_LDAP_BIND_DN = "browser"
AUTH_LDAP_BIND_PASSWORD = "Django15iscool"
AUTH_LDAP_USER_SEARCH = LDAPSearch("ou=utilisateurs,ou=employee,dc=bi,dc=invik,dc=lu",
                        ldap.SCOPE_SUBTREE, '(SAMAccountName=%(user)s)')


AUTH_LDAP_USER_ATTR_MAP = {
     "first_name": "givenName",
     "last_name": "sn",
     "email": "mail"
     }

我不明白为什么我不能登录,为什么他要求配置文件,我不使用配置文件,是否有什么要指定的内容来通知django不关心配置文件,让我登录:)

LDAPBackend不创建配置文件。首先尝试使用用户模型类创建用户。Django项目目录中需要一个shell:

python manage.py shell
然后在Python shell中尝试:

>>> from django.contrib.auth.models import User
>>> user = User.objects.create_user('username', None, None)
>>> user.save()
通过这种方式,用户被正确地创建,并且密码为空。 配置文件可以包括其他字段,您可以使用设置中的AUTH\u LDAP\u profile\u ATTR\u MAP参数使用LDAP属性填充这些字段。如果您对定制感兴趣,请注意,因为在Django 1.5中,用户配置文件被弃用,并由自定义用户模型替代,这应该更灵活


我知道档案日志看起来很吓人,但实际上有点像是在转移注意力*。你真正的问题是你试图用一个没有职员或超级用户权限的帐户登录管理页面。根据当前设置,有两种方法可以处理此问题:

1) 如果希望帐户的超级用户权限从LDAP模型继承,则需要为
is\u superuser
属性设置用户标志映射,其效果如下

AUTH_LDAP_USER_FLAGS_BY_GROUP = {
    "is_superuser": "cn=superuser,ou=groups,dc=example,dc=com"
}
2) 如果这不起作用,您将需要使用已经具有超级用户权限的现有帐户登录。当您第一次执行python manage.py syncdb时,应该会提示您创建超级用户帐户。只要您仍在使用
django.contrib.auth.backends.modelbend
进行身份验证,您就应该能够继续使用该超级用户帐户访问您的管理页面。如果做不到这一点,您可以进入shell并将您的帐户升级为超级用户或创建新的超级用户帐户

*要澄清的是,身份验证后端正在尝试填充您的
User
对象和关联的
UserProfile
对象(如果存在)。这是一个错误日志不够具体的情况。。。该错误消息并不表示存在问题,而是表示您尚未实现的功能。(如果您想了解有关1.4中此功能的更多信息,请访问……1.5中已有此功能)