C++ et annuaire AD

techno_man Messages postés 10 Date d'inscription dimanche 11 janvier 2004 Statut Membre Dernière intervention 17 juillet 2008 - 27 juin 2008 à 10:35
BastienL21 Messages postés 172 Date d'inscription dimanche 10 décembre 2000 Statut Membre Dernière intervention 12 février 2009 - 27 juin 2008 à 12:22
Bonjour à tous,

Je dois réaliser une appli en C/C++ dans laquelle l'utilisateur doit saisir son login/mdp AD et,  le programme doit vérifier ensuite qu'ils correspondent bien à ceux de l'annuaire (une authentification en fait).
Je dois également tester l'appartenance de l'utilisateur à un groupe.
Malheuresement, mes connaissances sont plutôt limitées et mes recherches n'ont rien donné.
Auriez-vous une idée (surtout pour le 1er point) ? Je seche un peu ...

Merci
Guigui.

1 réponse

BastienL21 Messages postés 172 Date d'inscription dimanche 10 décembre 2000 Statut Membre Dernière intervention 12 février 2009 2
27 juin 2008 à 12:22
Slt,
    Il faudrait que tu fasse soit if( mdp_predefini == mdp_Entre ) mais dans ce cas le nombre d'utilisateur et leurs mot de passe est prédéfini à l'avance.
 Sinon voici un extrait de code mais les données peuvent-être lu dans le fichier dans le-quel il est stocké (c'est un extrait (très simplifié) d'un code de "mini faut OS" lol que j'ai créé et cette ârtie me sert à l'identification des users (Je mettrais sûrement quand j'aurais le tps de le commenter et de le "nettoyer" sur CS)).

       fichier = NULL;//Initialise
       fichier = fopen("Destination\\NomDuFichier.Extension", "a+");//ouvre
           if (fichier != NULL)//ouverture OK
    {
        fscanf(fichier, "%[^\n]\n", Variable_De_Stockage_du_mdp_ou_user); //%[^\n]\n==>Jusqu'au premier retour à la ligne //récupère le mdp ou l'user contenu dans le fichier
        fclose(fichier);//Ferme le fichier
    }
            if(fichier == NULL)//Erreur d'ouverture
    {
       printf("ERREUR!");
    }
printf("Mot de passe? ");
scanf("%s", Variable_Qui_stocke_le_mdp_ou_luser_Entrer");
if( Variable_De_Stockage_du_mdp_ou_user == Variable_Qui_stocke_le_mdp_ou_luser_Entrer )//Si le mdp ou l'user entré est bon
{
...
}
else
printf("Erreur d'identification");

>tu le fait deux fois de suite :
          -1 pour l'user
          -1 pour le mdp (avec if( Userpredef == user_entre))
Tu peux par exemple pour récupérer plusieur mdp et leur users :

       fichier = NULL;
       fichier = fopen("C:\\PROGRA~1\\BLos\\u4.dll", "a+");
           if (fichier != NULL)
    {
        fscanf(fichier, "%[^\n]\n", u1);//u1 == le nom prédéfini de l'user n°1
        fclose(fichier);
    }
            if(fichier == NULL)
       printf("ERREUR!");

       fichier = NULL;

       fichier = fopen("C:\\PROGRA~1\\BLos\\u4.dll", "a+");

           if (fichier != NULL)

    {

        fscanf(fichier, "%[^\n]\n", u2);//u2 == le nom prédéfini de l'user n°2

        fclose(fichier);

    }

          sleep(20);

       printf(".");

            if(fichier == NULL)

       printf("ERREUR!");...Autant de fois que d'user

>on a récupéré les nom d'user et pareil avec les mots de passe
Cette technique va si il n'y a pas beaucoup d'utilisateur sinon tu devrais pouvoir le faire en nommant des fichiers par le nom de l'user et en comparant le nom entré avec les noms de fichiers contenus dans un dossier précis avec FindFirstFile() et FindNextFile() et si le nom existe, que le programme ouvre le fichier qui le porte et mette le mdp qui y serait préalablement mit, dans une variable et la comparerait avec le mdp que l'user aura entré.

Cordialement, B@stien.//@++
PS: C'est du C, pas ++
0
Rejoignez-nous