Python Django身份验证LDAP

Python Django身份验证LDAP,python,django,ldap,Python,Django,Ldap,我有一个Django项目,在这个项目中,我想根据Active Directory对用户进行身份验证。因此,我正在使用这个框架。我能够同步用户(/manage.py ldap\u sync\u users),授予超级用户管理员访问权限,并使用框架作为后端登录到默认的Django管理员页面。但是,当我尝试在我的站点上进行身份验证时,用户状态保持为AnonymousUser 视图.py def login(request): try: username = request.POST['user

我有一个Django项目,在这个项目中,我想根据Active Directory对用户进行身份验证。因此,我正在使用这个框架。我能够同步用户(
/manage.py ldap\u sync\u users
),授予超级用户管理员访问权限,并使用框架作为后端登录到默认的Django管理员页面。但是,当我尝试在我的站点上进行身份验证时,用户状态保持为
AnonymousUser

视图.py

def login(request):
try:
    username = request.POST['username']
    password = request.POST['password']
    user = authenticate(request, username=username, password=password)
    if user is not None:
        login(request, user, backend=django_python3_ldap)
        context = {'user': user}
        return render(request, 'website/home.html', context)
    else:
        context = {'': ''}
        return render(request, 'website/login.html', context)
except:
    print()
login.html


{%csrf_令牌%}
记得我吗
登录
{%endblock%}

我发现可能有两个问题:后端没有指向有效的后端。另外,您的尝试有点危险,请将其移除。除非您正在测试,否则切勿使用空白除非。使用类似
的内容,但例外情况除外,例如e:print(e)
。我说的原因是空白,除了隐藏无效后端错误。
login(request, user, backend=django_python3_ldap)
# Should be
login(request, user, backend=django_python3_ldap.auth.LDAPBackend)

显示的代码不足,无法提供帮助。您从何处导入身份验证和登录方法?您是否在设置中设置了ldap后端?如果您这样做,您应该能够使用django的内置登录视图。它将调用正确的身份验证。@MitchellWalls查看我的编辑。如果您需要任何其他信息,请告诉我。我已经提供了答案。我想您最初提供了足够的信息,我只是不确定您使用的是什么登录和身份验证。我想是django的。@MitchellWalls谢谢你的帮助,我忘记了输入对象的
name
属性。现在一切都很好。那么,什么是固定的呢?好的想法,我只是在使用空白,只是为了测试的目的,但是谢谢你的想法。