Probleme LDAP et C#

remousse Messages postés 299 Date d'inscription   Statut Membre Dernière intervention   -  
remousse Messages postés 299 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,
Je dois copier les données d'un fichier texte dans mon annuaire LDAP et tout ça en langage C.

Je ne vois pas du tout comment faire si quelqu'un pourrai m'expliquer.

Je vous met mon code afin que vous puissiez voir de quoi il s'agit plus précisément.

#include <ldap.h>
#include <stdio.h>
#include <stdlib.h>

int main(int agrc, char *argv[])
{
LDAP * pldp;
int rc;
char * dn;
char *pDN;
int protocolVersion = LDAP_VERSION3;
LDAPMessage *pResultat, *pEntree;
LDAPMod mod1,mod2,mod3,mod4,mod5,mod6,mod7,mod8,mod9,mod10, * mods[2];
char * val1[2], * val2[2], * val3[2], * val4[2], * val5[2], * val6[2], * val7[2], * val8[2], * val9[2], * val10[2];

//initialisation de la connexion

rc = ldap_initialize(&pldp,"ldap://localhost/");
printf("Initialize: %s\n",ldap_err2string(rc));
if(rc != LDAP_SUCCESS) exit(1);

rc = ldap_set_option(pldp, LDAP_OPT_PROTOCOL_VERSION, &protocolVersion);
printf("Set option: %s\n",ldap_err2string(rc));
if(rc != LDAP_SUCCESS) exit(2);

//Authentification

rc = ldap_simple_bind_s(pldp,NULL,NULL);
printf("Bind: %s\n\n",ldap_err2string(rc));
if(rc != LDAP_SUCCESS) exit(3);

//Partie lecture du fichier

FILE* fic = NULL;
int caractere = 0;

fic = fopen("fichier.txt","r");

if(fic == NULL)
{
printf("Erreur ouverture du fichier");
exit(EXIT_FAILURE);
}
else
{
printf("Contenu du fichier: \n\n");
//Boucle pour lire les caractères 1 à 1
do
{
//Permet de lire le caractère
caractere = fgetc(fic);
//on affiche le caractere
printf("%c", caractere);
}
while(caractere != EOF);

fclose(fic);
}


//Partie ajout d'entrées à l'annuaire

//DN de la nouvelle entrée

dn = "cn=,ou=Enseignant,o=ESIGELEC,dc=coursldap,dc=fr";

mod1.mod_op = LDAP_MOD_ADD;
mod1.mod_type = "cn";
val1[0] = "";
val1[1] = NULL;
mod1.mod_values = val1;

mod2.mod_op = LDAP_MOD_ADD;
mod2.mod_type = "objectclass";
val2[0] = "inetOrgPerson";
val2[1] = NULL;
mod2.mod_values = val2;

mod3.mod_op = LDAP_MOD_ADD;
mod3.mod_type = "sn";
val3[0] = "";
val3[1] = NULL;
mod3.mod_values = val3;

mod4.mod_op = LDAP_MOD_ADD;
mod4.mod_type = "givenName";
val4[0] = "";
val4[1] = NULL;
mod4.mod_values = val4;

mod5.mod_op = LDAP_MOD_ADD;
mod5.mod_type = "mail";
val5[0] = "";
val5[1] = NULL;
mod5.mod_values = val5;

mod6.mod_op = LDAP_MOD_ADD;
mod6.mod_type = "l";
val6[0] = "";
val6[1] = NULL;
mod6.mod_values = val6;

mod7.mod_op = LDAP_MOD_ADD;
mod7.mod_type = "postalCode";
val7[0] = "";
val7[1] = NULL;
mod7.mod_values = val7;

mod8.mod_op = LDAP_MOD_ADD;
mod8.mod_type = "homePhone";
val8[0] = "";
val8[1] = NULL;
mod8.mod_values = val8;

mod9.mod_op = LDAP_MOD_ADD;
mod9.mod_type = "mobile";
val9[0] = "";
val9[1] = NULL;
mod9.mod_values = val9;

mod10.mod_op = LDAP_MOD_ADD;
mod10.mod_type = "userPassword";
val10[0] = "";
val10[1] = NULL;
mod10.mod_values = val10;

mods[0]=&mod1;
mods[1]=&mod2;
mods[2]=&mod3;
mods[3]=&mod4;
mods[4]=&mod5;
mods[5]=&mod6;
mods[6]=&mod7;
mods[7]=&mod8;
mods[8]=&mod9;
mods[9]=&mod10;
mods[10]=NULL;

//Ajout de l'entrée

rc = ldap_add_s(pldp, dn, mods);
printf("Add: %s\n",ldap_err2string(rc));

ldap_unbind_s(pldp);

}

Merci
A voir également:

1 réponse

remousse Messages postés 299 Date d'inscription   Statut Membre Dernière intervention   6
 
personne n'a d'idée ??
en plus c'est très urgent je doit le rendre dans 50 min !!!
merci
0