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#
- Ldap client windows - Télécharger - Édition & Programmation
- Ldap tool box - Télécharger - Récupération de données
- Samba ldap - Forum Linux / Unix
- Ordre alphabétique ldap - Forum Programmation
- L'extension ldap de votre parseur php n'est pas installée - Forum PHP