GBase8d_C_API_07_添加条目_创建新条目并添加到目录中

GBase8d_C_API_07_添加条目_创建新条目并添加到目录中

每一个条目都包括一个分辨名(DN) 和一组属性,并通过DN 在目录中识别该条目。在GBase 8d C API中,条目用ldap_add_s()或ldap_add()添加。

调用ldap_add_s()创建一个新条目。例如:

/* 初始化要添加条目的DN */

    char *dn = "cn=Richard Petersen, " BASE_DN;

/* 将新条目添加到目录中 */

 使用同步函数

                 msgid = ldap_add_s(ld, dn, attrs);

   使用异步函数

    msgid = ldap_add(ld, dn, attrs);

/* 异步操作筛选结果 */

    while (!finished)

    {

        rc_result = ldap_result(ld, msgid, LDAP_MSG_ONE, NULL, &res);

        switch (rc_result)

    {

        case -1:

                /* 发生错误 */

                ldap_perror(ld, "ldap_result");

                ldap_unbind(ld);  

                return -1;

            case 0:

                /* 超时,条目没准备好 */

            break;

            case LDAP_RES_ADD:

                /* 操作完成,筛选结束 */

            finished = 1;

                break;

        default:

                /* 不会出现这种情况 */

                ldap_unbind(ld);  

                return -1;

    }

        

        /*

        * 因为是异步操作,筛选结果同时可以做其他操作。

        * 这里可以添加需要的操作。

        */    

    }

   

    /* 转换从ldap_result()中输出的结果信息 */

    rc_result2error = ldap_result2error(ld, res, 0);

    if (rc_result2error == LDAP_SUCCESS)

    {

        printf ("ldap_add: Entry added successfully.\n");

    }

    else

    {

        ldap_perror(ld, "ldap_add");

    }

【注意】在加入条目前是否指定了该条目的对象类(可以通过设置“objectclass”属性来指定及该类所需要的属性。例如,在GBase 8d Server 中组织单元(organizational unit) 用“organizationalUnit ”对象类的条目表示。如果要为一个人加入一个条目,必须先在条目中指定如下属性:

objectclass(该属性的值应包括“top”,“organizationalUnit”)

ou(这是一个必需的属性)

认证用户是否具有向目录中添加该条目的访问权限(如果没有向目录中添加该条目的权限,系统将产生一个LDAP_INSUFFICIENT_ACCESS的LDAP错误码)。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值