Probleme LDAP et C#

Fermé
remousse Messages postés 299 Date d'inscription dimanche 2 novembre 2008 Statut Membre Dernière intervention 20 novembre 2014 - 20 mai 2009 à 11:26
remousse Messages postés 299 Date d'inscription dimanche 2 novembre 2008 Statut Membre Dernière intervention 20 novembre 2014 - 20 mai 2009 à 11:48
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

1 réponse

remousse Messages postés 299 Date d'inscription dimanche 2 novembre 2008 Statut Membre Dernière intervention 20 novembre 2014 6
20 mai 2009 à 11:48
personne n'a d'idée ??
en plus c'est très urgent je doit le rendre dans 50 min !!!
merci
0