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 -
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
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:
- Probleme LDAP et C#
- Client ldap windows - Télécharger - Édition & Programmation
- Ldap tool box - Télécharger - Récupération de données
- Curl ldap - Forum Programmation
- Samba ldap - Forum Linux / Unix
- Problème zimbra ldap ne démarre plus ✓ - Forum Ubuntu