0

我正在使用 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 条目...

在此先感谢,洛伊克。

4

1 回答 1

0

对于与搜索参数匹配的每个条目,始终从 LDAP 搜索操作返回可分辨名称(或主键)。可分辨名称不是属性。

于 2013-08-12T16:14:35.620 回答