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

Delphi Discussion :

Base de registre : clé lisible par tous les utilisateur ? [FAQ]


Sujet :

Delphi

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 28
    Points : 25
    Points
    25
    Par défaut Base de registre : clé lisible par tous les utilisateur ?
    Bonjour,

    Pour un projet j'utilise une protection par numéro de serie que je stocke chiffré dans la base de registre. Je le stocke pour l'instant dans HKEY_LOCAL_MACHINE\SOFTWARE\MyProg lors de l'installation sous un compte administrateur.
    Le problème est qu'ensuite les utilisateurs normaux ne peuvent pas lire cette clé. Peut être à cause d'une histoire de droits ? Si oui comment rendre accessible une clé à tous les utilisateurs ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    Registry := TRegistry.Create;
    Registry.RootKey := HKEY_LOCAL_MACHINE;
    Registry.OpenKey('\SOFTWARE\MyProg', true);
    Registry.WriteString('Serial',CryptString(Serial));
    Registry.CloseKey;
    Registry.Free;

  2. #2
    Rédacteur
    Avatar de Giovanny Temgoua
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2003
    Messages
    3 830
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2003
    Messages : 3 830
    Points : 4 006
    Points
    4 006
    Par défaut
    Bonjour,

    Avez-vous regardé ici ?
    http://delphi.developpez.com/faq/?pa...stre#bdrdroits

    ?

    Citation Envoyé par Dans la FAQ, on a écrit
    Le niveau d'accès autorisé dépend des permissions associées à votre compte NT.

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 28
    Points : 25
    Points
    25
    Par défaut
    Oui j'avais regardé. J'ai peu être mal formulé ma demande. En fait je cherche un moyen en delphi de modifier les droits des clés de la base de registre (quand le programme tourne en administrateur bien sur) : par exemple donner à une clé de HKEY_LOCAL_MACHINE les droits d'écriture et de lecture.

    J'ai pour l'instant détourné le problème en stockant mes clés dans HKEY_CURRENT_USER.

  4. #4
    Membre expert
    Avatar de LadyWasky
    Femme Profil pro
    Inscrit en
    Juin 2004
    Messages
    2 932
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 54
    Localisation : France, Hauts de Seine (Île de France)

    Informations forums :
    Inscription : Juin 2004
    Messages : 2 932
    Points : 3 565
    Points
    3 565
    Par défaut
    Tu as de la chance...

    Il y a quelque temps déjà, j'ai adapté un code trouvé sur le Net, en pièce jointe tu trouveras une unité qui t'intéressera

    Dedans, il y a une fonction appelée ChangeDroitsCleRegistre (pas trop mal documentée) que j'ai adapté d'après une source Allemande et qui te permettra de changer les droits pour tous les utilisateurs (sauf les administrateur qui garde les tous les droits (lecture/ecriture,etc...)

    Ca s'utilise comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    uses Windows, UnitRegistre;
    ...
    procedure TForm1.Button1Click(Sender: TObject);
    var Cle:string;
    begin
      Cle:='SOFTWARE\MyProg';
      ChangeDroitsCleRegistre(HKEY_LOCAL_MACHINE,PCHar(Cle),KEY_READ);
    end;
    A la place de KEY_READ, tu peux aussi mettre ces valeurs :
    Liste des Droits pour la base de registre :
    KEY_ALL_ACCESS=KEY_QUERY_VALUE+KEY_ENUMERATE_SUB_KEYS
    +KEY_NOTIFY+KEY_CREATE_SUB_KEY+KEY_CREATE_LINK
    +KEY_SET_VALUE.
    KEY_CREATE_LINK : Permission de créer un lien symbolique
    KEY_CREATE_SUB_KEY : Permission de créer des sous-clés.
    KEY_ENUMERATE_SUB_KEYS : Permission d'énumérer les sous-clés.
    KEY_EXECUTE : Permission d'accès en lecture (=KEY_READ).
    KEY_NOTIFY : Permission pour demander des avis de changement
    pour une clé ou pour des sous-clés.
    KEY_QUERY_VALUE : Permission pour lister les valeurs
    d’une clé.
    KEY_SET_VALUE : Permission pour créer, supprimer, ou changer une valeur..
    KEY_READ = KEY_QUERY_VALUE+KEY_ENUMERATE_SUB_KEYS+KEY_NOTIFY.
    KEY_WRITE = KEY_SET_VALUE+KEY_CREATE_SUB_KEY.
    Si ta clé n'existe pas, elle est automatiquement créée.

    Bon dev
    Fichiers attachés Fichiers attachés

  5. #5
    Rédacteur
    Avatar de Giovanny Temgoua
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2003
    Messages
    3 830
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2003
    Messages : 3 830
    Points : 4 006
    Points
    4 006
    Par défaut
    KEY_ALL_ACCESS=KEY_QUERY_VALUE+KEY_ENUMERATE_SUB_KEYS
    +KEY_NOTIFY+KEY_CREATE_SUB_KEY+KEY_CREATE_LINK
    +KEY_SET_VALUE.
    KEY_CREATE_LINK : Permission de créer un lien symbolique
    KEY_CREATE_SUB_KEY : Permission de créer des sous-clés.
    KEY_ENUMERATE_SUB_KEYS : Permission d'énumérer les sous-clés.
    KEY_EXECUTE : Permission d'accès en lecture (=KEY_READ).
    KEY_NOTIFY : Permission pour demander des avis de changement
    pour une clé ou pour des sous-clés.
    KEY_QUERY_VALUE : Permission pour lister les valeurs
    d’une clé.
    KEY_SET_VALUE : Permission pour créer, supprimer, ou changer une valeur..
    KEY_READ = KEY_QUERY_VALUE+KEY_ENUMERATE_SUB_KEYS+KEY_NOTIFY.
    KEY_WRITE = KEY_SET_VALUE+KEY_CREATE_SUB_KEY.
    Ce code serait un excellent complément à la QR que j'ai citée plus haut. Merci

    Et le code une excellente entrée dans la page sources

    Et waskol un excellent ...

  6. #6
    Membre expert
    Avatar de LadyWasky
    Femme Profil pro
    Inscrit en
    Juin 2004
    Messages
    2 932
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 54
    Localisation : France, Hauts de Seine (Île de France)

    Informations forums :
    Inscription : Juin 2004
    Messages : 2 932
    Points : 3 565
    Points
    3 565
    Par défaut
    Citation Envoyé par Giovanny Temgoua
    Ce code serait un excellent complément à la QR que j'ai citée plus haut. Merci

    Et le code une excellente entrée dans la page sources
    Pas de problème pour tout ça
    Il y a juste que je n'ai pas trop trop de temps pour le faire
    Citation Envoyé par Giovanny Temgoua
    Et waskol un excellent ...
    Merci Giovanny

  7. #7
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 28
    Points : 25
    Points
    25
    Par défaut
    Merci bien, c'est tout a fait ce que je recherchais.

  8. #8
    Membre expert
    Avatar de TicTacToe
    Inscrit en
    Septembre 2005
    Messages
    1 940
    Détails du profil
    Informations personnelles :
    Âge : 51

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 940
    Points : 3 575
    Points
    3 575
    Par défaut
    Salut à tous

    mais un doute me vient

    Cela signifie que n'importe quel programme ouvert sur un compte non admin de la machine peut écrire dans HKEY_Local_Machine ???

    (sans définition au vol d'un login/mdp admin )

  9. #9
    Membre expert
    Avatar de LadyWasky
    Femme Profil pro
    Inscrit en
    Juin 2004
    Messages
    2 932
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 54
    Localisation : France, Hauts de Seine (Île de France)

    Informations forums :
    Inscription : Juin 2004
    Messages : 2 932
    Points : 3 565
    Points
    3 565
    Par défaut
    Citation Envoyé par TicTacToe
    Salut à tous

    mais un doute me vient

    Cela signifie que n'importe quel programme ouvert sur un compte non admin de la machine peut écrire dans HKEY_Local_Machine ???

    (sans définition au vol d'un login/mdp admin )

    Oui, si l'autorisation à été donnée à partir du compte Admin
    Sinon, non ! ("Cette installation necessite les droits administrateur" )

  10. #10
    Membre expert
    Avatar de TicTacToe
    Inscrit en
    Septembre 2005
    Messages
    1 940
    Détails du profil
    Informations personnelles :
    Âge : 51

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 940
    Points : 3 575
    Points
    3 575
    Par défaut
    (quand le programme tourne en administrateur bien sur)
    Autant pour moi Waskol, j'avais pas lu le "ptit" détail ci-dessus

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

Discussions similaires

  1. Base de registre et clavier par défaut
    Par Avatar dans le forum Windows XP
    Réponses: 1
    Dernier message: 23/10/2007, 14h53
  2. Réponses: 4
    Dernier message: 21/03/2007, 15h32
  3. Réponses: 10
    Dernier message: 02/11/2006, 20h52
  4. Réponses: 2
    Dernier message: 03/10/2006, 18h14
  5. Connexion refusée par MySQL : j'ai effacé tous les utilisateurs
    Par AliochaBada dans le forum Installation
    Réponses: 2
    Dernier message: 16/08/2006, 01h44

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