LDAP ADD属性到用户

时间:2014-01-25 11:26:51

标签: c ldap

我正在尝试为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)

请帮忙。

1 个答案:

答案 0 :(得分:1)

'inetOrgPerson'没有'mailid'属性。如果要添加任意属性,则需要将“extensibleObject”类添加到对象的类中,这只能在创建时执行。否则,您需要使用模式实际允许的属性帽。