我正在尝试为LDAP中的用户添加属性值。 我有用户“uid = testUser,ou = Local,ou = Type1,ou = People,dc = mnopid,dc = com”
对于该用户,我在“objectClass:inetOrgPerson”下有模式,属性名称是“mailid”
我已经创建了LDAPMod结构。 我正在使用ldap_add_ext API添加属性。
我的代码是用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[] = { "test@mnopid.com",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 );
正确定义了所有必需的数据。没有编译错误。
当我运行代码时,我收到错误“对象类违规(65)
请帮忙。
答案 0 :(得分:1)
'inetOrgPerson'没有'mailid'属性。如果要添加任意属性,则需要将“extensibleObject”类添加到对象的类中,这只能在创建时执行。否则,您需要使用模式实际允许的属性帽。