我正在使用 django 和 Ldap 后端编写一个 Web 应用程序来验证用户身份。身份验证完成,属性映射也用 django-auth-ldap 完成(谢谢...)。但在网页界面中,用户需要更新一些信息,如描述、电话等......
所以我需要检索 dn 属性来更新当前用户而不是另一个。我尝试使用和属性映射区分名称但不起作用......有什么想法吗?
请在下面找到当前代码。
设置.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 条目...
在此先感谢,洛伊克。