Я пытаюсь добавить значение для атрибута для пользователя в LDAP. У меня есть пользователь "UID = TestUser, НУ = Local, НУ = Type1, НУ = People, dc = mnopid, DC = ком"LDAP ADD Атрибут пользователя
Для этого пользователя У меня есть схемы под "объектный: InetOrgPerson" и имя атрибута " mailid "
Я создал структуру LDAPMod. Я использую API ldap_add_ext для добавления атрибута.
Мой код находится на языке c.
Мой код для добавления его части (это не полный код)
#define CHANGE_DN = "uid=testUser,ou=Local,ou=Type1,ou=People,dc=mnopid,dc=com";
LDAPMod *mods[2] ;
LDAPMod modsattr ;
int rc,msgid;
char *mail[] = { "[email protected]",NULL };
modsattr.mod_op = LDAP_MOD_ADD;
modsattr.mod_type = "mailid";
modsattr.mod_values = mail;
mods[0]=&modsattr;
mods[1]=NULL;
rc = ldap_add_ext(ld, CHANGE_DN, mods, NULL, NULL ,&msgid);
Все необходимые данные правильно defined.There нет ошибок компиляции.
Когда я запускаю код, который я получаю сообщение об ошибке, как «нарушение класса объекта (65)
Пожалуйста, помогите.
'=' in '#define CHANGE_DN', конечно, не поможет. Мне даже интересно, как этот код компилируется. Если это не причина ваших неудач, код ошибки, который вы получаете, означает, что запрос не соответствует вашей схеме. Скорее всего, в вашей строке 'CHANGE_DN'. IIRC вы должны иметь возможность получать расширенные данные об ошибках, чтобы лучше понять причину нарушения (прямо сейчас я не помню, как, но на всякий случай проверяйте API). Во всяком случае, у вас есть мое сочувствие справиться с этим видом на протокол. –
@kuroineko Эта «черная дыра протокола», тем не менее, чрезвычайно важна в мире ИТ, и ваше незатребованное мнение об этом совершенно излишне. – EJP
@ EJP О, извините, не было никакого преступления. Мне приходилось справляться с этим несколько раз, и это оставило мне болезненные воспоминания. Однако я никогда не сомневался в его полезности. –