IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++Builder Discussion :

information gestion utilisateur


Sujet :

C++Builder

  1. #1
    Expert confirmé
    Avatar de ludojojo
    Homme Profil pro
    Développeur SharePoint
    Inscrit en
    Avril 2008
    Messages
    2 967
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Développeur SharePoint
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 967
    Points : 5 347
    Points
    5 347
    Billets dans le blog
    5
    Par défaut information gestion utilisateur
    Bonjour,
    Je cherche à faire une gestion des utilisateur pour un de mes programmes...
    Je me posait la question de savoir quelle était la meilleur manière de procèder.
    Mon programme ne devrai pas compter plus de 5 utilisateurs différents.
    J'ai donc penser à faire une gestion en brut dans mon code en les définissant directement à travers des variables.
    Mais après réflexion je me suis dit que ça serai mieu de pouvoir proposer à un tout utilisateur de pouvoir créer un nouvel utilisateur, ou de modifier son compte (nom de connexion et mot de passe) ou de le supprimer.

    Et c'est la que fait appel à vous, j'ai cherché sur le forum et dans la F.A.Q mais je n'ai pas trouvé grand chose... J'aimerai savoir quelle est la meilleur mannière? passer par un fichier extérieur au code(un fichier TXT)? ou plutot créer un tableau?
    Mon problème c'est d'arriver à lié le mot de passe et l'utilisateur pour faire les test après dans le code.
    C'est la première fois que j'essaye de gérer la connexion à un programme, alors je suis un peut perdu.

    Merci par avance pour votre aide.

  2. #2
    Membre actif Avatar de Bily.sdi
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    208
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2005
    Messages : 208
    Points : 206
    Points
    206
    Par défaut
    regarde dans : fichier .INIT

    ou utilise un BD , c'est simple ( paradox )

    fais une petite recherche , et tiens nous au courant

    @+

  3. #3
    Expert confirmé
    Avatar de ludojojo
    Homme Profil pro
    Développeur SharePoint
    Inscrit en
    Avril 2008
    Messages
    2 967
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Développeur SharePoint
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 967
    Points : 5 347
    Points
    5 347
    Billets dans le blog
    5
    Par défaut
    Alors j'ai tester cette direction et voila ce que j'ai commencer à faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    #include "IniFiles.hpp"
     
    TIniFile * fichier = new TiniFile("c:\\MAJ\\monfichierini.ini");
     
    void __fascall TForm1::Button1Click(TOblect *Sender)
    {
       fichier->WriteString("Section AnsiString","Nom d'utilisateur", Edit1->Text);
       fichier->WriteString("Section AnsiString","PassWord", Edit2->Text);
    }
    Mon problème c'est que lorsque je vais vouloir créer un nouvel utilisateur, j'aurai besoin de pouvoir mettre quelque chose du style
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    int i = 1;
    void __fascall TForm1::Button1Click(TOblect *Sender)
    {
       fichier->WriteString("Section AnsiString","Nom d'utilisateur" & i, Edit1->Text);
       fichier->WriteString("Section AnsiString","PassWord" & i, Edit2->Text);
    i++;
    }
    Mais cela provoque une erreur. Quelqu'un connait un moyen simple de personnaliser chaque utilisateur? de façon à pouvoir en créer plusieur? par ce que sinon à chaque fois je vais écraser la valeur qui correspond à l'ancien nom d'utilisateur...

    Merci par avance

  4. #4
    Expert confirmé
    Avatar de ludojojo
    Homme Profil pro
    Développeur SharePoint
    Inscrit en
    Avril 2008
    Messages
    2 967
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Développeur SharePoint
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 967
    Points : 5 347
    Points
    5 347
    Billets dans le blog
    5
    Par défaut
    N'ayant aucune réponse je pense que j'ai du mal m'exprimer.
    Mon problème c'est que je cherche à faire intervenir une variable dans le champs qui correspond à la variable...
    En gros je voudrais pouvoir obtenir dans mon fichier ini quelque chose du style :

    [Section AnsiString]
    Nom d'utilisateur1=name
    Mot de passe1=password
    Nom d'utilisateur2=name
    Mot de passe2=password
    Nom d'utilisateur3=name
    Mot de passe3=password
    Nom d'utilisateur4=name
    Mot de passe4=password
    Nom d'utilisateur5=name
    Mot de passe5=password

    Merci par avance

  5. #5
    Membre expérimenté
    Avatar de sat83
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2004
    Messages
    1 040
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 040
    Points : 1 307
    Points
    1 307
    Par défaut
    Bonjour,
    l'idéal dans la gestion de compte, c'est utilisé une base de donnée avec des infois cryptées.

    Mais dans ton cas pour 5 utilisateurs, tu peux peut être te débrouillé autrement! Est-ce que c'est une application vraiment critique? Vu que tu parle de sauvegarder les mots dans un fichier TXT je pense que non.

    Ma premiere gestion de compte pour ma première appli y'a quelques année j'avais utiliser des fichier ini et le hachage MD5

    j'utilisait le Hash Md5 du login et du mot de passe, ce qui donnait ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    [Users]
    d6aa97d33d459ea3670056e737c99a3d=5da8aa7126701c9840f99f8e9fa54976
    où 5da8aa7126701c9840f99f8e9fa54976 etait le hachage MD5 du mot de passe et d6aa97d33d459ea3670056e737c99a3d le hachage MD5 du login.

    Au moment où quelqu'un se loggait (par exmeple NomUser - PasswordUser)

    j'effectuait le hachage MD5 du loggin, et recherchais une Clé dans mon fichier Ini. Si j'en trouvais une, je faisait de même pour vérifié le mot de passe, et sinon c'est que l'utilisateur n'existait pas.

    C'est pas un système super évoluer de gestion de login, mais ca permet d'ajouter-modifier-supprimer des utilisateurs, et surtout de n'avoir aucune infos en clair dans un fichier...

  6. #6
    Expert confirmé
    Avatar de ludojojo
    Homme Profil pro
    Développeur SharePoint
    Inscrit en
    Avril 2008
    Messages
    2 967
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Développeur SharePoint
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 967
    Points : 5 347
    Points
    5 347
    Billets dans le blog
    5
    Par défaut
    c'est exactement ce que je cherche!!!
    Non ce n'est pas critique du tout, mais j'ai besoin d'un simple test pour que tout le monde n'est pas un accès comme il veux!
    Est ce que tu pourrais me donner plus d'informations sur le fonctionnement?
    ou si tu as encore ton bout de code que tu utilisais ça serai génial...

    Merci par avance

  7. #7
    Membre expérimenté
    Avatar de sat83
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2004
    Messages
    1 040
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 040
    Points : 1 307
    Points
    1 307
    Par défaut
    Malheureusement pour le code tout fais c'est tellement vieux que je n'ai plus les sources!

    Mais c'est vraiment pas très compliqué, les seuls trucs a savoir faire c'est :

    - calculer le hach MD5 d'une chaîne (le code ici fera très bien l'affaire)
    - Ecrire/Lire dans un fichier INI

    Si tu maîtrise a peut prêt ces deux trucs, y'aura aucun soucis! Si jamais tu a des questions précises ou des trucs que tu n'arrive pas a faire en particulier, n'hésite pas a demander...

  8. #8
    Membre expérimenté
    Avatar de sat83
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2004
    Messages
    1 040
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 040
    Points : 1 307
    Points
    1 307
    Par défaut
    Comme ta question ma plongé dans de nostalgiques souvenirs, je me suis amusé a faire les quelques fonctions nécessaire. J'ai pas tout tester et je l'ai fais sur un coin de table, donc a vérifier et tester, mais ca devrait marcher!

    - J'utilise la fonction MD5 disponible ici

    - Je part du principe que ini est un TIniFile déja instancier!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    TIniFile *ini = new TIniFile( "C:\\users.ini" );
    Y'a donc 4 fonctions:

    - Ajouter un utilisateur
    - Supprimer un utilisateur
    - Vérifier le login/mot de passe
    - Vérifier l'existence d'un utilisateur

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    //------------------------------------
    //# TEST L'EXISTANCE D'UN USER
    //------------------------------------
    bool UserExists( AnsiString aLogin )
    {
      TStringList *userList = new TStringList() ;
    //recupération de tous les users
      ini->ReadSection("USERS", userList ) ;
      bool existing;
    //test si le user passé en paramètre existe
      existing = ( userList->IndexOf(MD5(aLogin)) != -1 ) ;
      delete userList ;
      return(existing) ;
    }
     
    //------------------------------------
    //#AJOUTE UN UTILISATEUR
    //------------------------------------
    bool AddUser( AnsiString aLogin, AnsiString aPassword )
    {
       if( UserExists(aLogin) )
         return(false) ;
       // le USER n'existe pas, on l'ajoute
       ini->WriteString("USERS", MD5(aLogin), MD5(aPassword) ) ;
       return(true) ;
    }
     
    //------------------------------------
    //# VERIFIE LOGIN ET MOT DE PASSE
    //------------------------------------
    bool CheckUser( AnsiString aLogin, AnsiString aPassword )
    {
       AnsiString pwd = ini->ReadString("USERS", MD5(aLogin), "UNKNOWN" ) ;
       return( MD5(aPassword) == pwd ) ;
    }
     
    //------------------------------------
    //# SUPPRIME UN UTILISATEUR
    //------------------------------------
    bool DeleteUser( AnsiString aLogin, AnsiString aPassword )
    {
      if( !CheckUser(aLogin, aPassword ))
         return false ;
    //on ne supprime QUE si le login et le mot de passe sont correct
      ini->DeleteKey("USERS", MD5(aLogin)) ;
    }
    Je pense qu'avec ça tu devrait t'en sortir!

  9. #9
    Expert confirmé
    Avatar de ludojojo
    Homme Profil pro
    Développeur SharePoint
    Inscrit en
    Avril 2008
    Messages
    2 967
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Développeur SharePoint
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 967
    Points : 5 347
    Points
    5 347
    Billets dans le blog
    5
    Par défaut
    Milles merci pour cette aide!!!
    Je vais tester ça aujourd'hui et je te tien informer en fin de journée du résultat!!!

  10. #10
    Expert confirmé
    Avatar de ludojojo
    Homme Profil pro
    Développeur SharePoint
    Inscrit en
    Avril 2008
    Messages
    2 967
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Développeur SharePoint
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 967
    Points : 5 347
    Points
    5 347
    Billets dans le blog
    5
    Par défaut
    Alors je ne sais pas qoui dire, c'est out simplement parfait.
    Mille merci!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [MDW][ADO][ACCESS 2002] Gestion utilisateurs
    Par Frank dans le forum Sécurité
    Réponses: 7
    Dernier message: 04/09/2007, 18h48
  2. informer les utilisateurs de l'avancement du script
    Par mohcultiv dans le forum VBA Access
    Réponses: 2
    Dernier message: 11/07/2007, 15h00
  3. gestion utilisateur sécurité
    Par liloo31 dans le forum Sécurité
    Réponses: 7
    Dernier message: 19/02/2007, 19h47
  4. Replica et gestion utilisateurs
    Par odelayen dans le forum Access
    Réponses: 4
    Dernier message: 09/06/2006, 14h53
  5. Gestion utilisateurs avec droits
    Par dr_look dans le forum Décisions SGBD
    Réponses: 1
    Dernier message: 27/04/2005, 17h03

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo