我正在使用django和Ldap后端编写一个Web应用程序来验证用户身份。身份验证已完成,属性映射也是使用django-auth-ldap完成的(感谢...)。 但是在Web界面中,用户需要更新一些信息,如描述,电话等......
所以我需要检索dn属性来更新当前用户而不是另一个用户。我尝试将区分名称与属性映射但不起作用... 有什么想法吗?
请在下面找到当前代码。
settings.py:
AUTH_LDAP_USER_ATTR_MAP = {
"dn" : "ldap_user.dn",
"name": "cn",
"description": "description",
"employeeType": "employeeType",
... }
但没有结果......
我还试着写在我看来:
def update_description(request):
if request.method == "POST":
form = DescriptionUpdateForm(request.POST)
if form.is_valid():
description = form.cleaned_data['description']
user = request.user
old_description = user.description
user.description = description
user.save()
try:
l = ldap.initialize(settings.AUTH_LDAP_SERVER_URI)
l.simple_bind_s(settings.AUTH_LDAP_BIND_DN, settings.AUTH_LDAP_BIND_PASSWORD)
user_ldap_dn = LDAPBackend().django_to_ldap_username(user.email).dn
l.unbind_s()
except ldap.LDAPError, e:
print e
return HttpResponseRedirect('/user/profile')
else:
form = DescriptionUpdateForm()
return render(request, 'edit_description.html', {'form': form,})
但没有结果,我无法检索此用户的dn条目......
提前致谢, 卢瓦克。
答案 0 :(得分:0)
对于与搜索参数匹配的每个条目,始终从LDAP搜索操作返回专有名称(或主键)。专有名称不是属性。