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
Configuration: Windows Vista Firefox 3.0.6
A voir également:
- Probleme LDAP et C#
- Ldap client windows - Télécharger - Édition & Programmation
- Ldap tool box self service password - Télécharger - Récupération de données
- Mantis ldap - Forum Réseau
- Mysql ldap - Forum MySQL
- Samba ldap - Forum Linux / Unix