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 :

Accès au registre Windows


Sujet :

Delphi

  1. #1
    Membre confirmé Avatar de TryExceptEnd
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2006
    Messages
    501
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2006
    Messages : 501
    Points : 574
    Points
    574
    Par défaut Accès au registre Windows
    Mon application développée avec Delphi 7, utilise le registre de Windows pour diverses manipulations d'écritures et de lectures, sous un compte administrateur (WIN XP) aucun problème d'accès, mais sous un compte limité j'ai un accès restreint au registre sous la clé HKEY_LOCAL_MACHINE, alors que j’en ai besoin pour partager les mêmes données pour tout les utilisateurs.
    Comment régler ce problème d’accès ?
    Merci.
    Si vous êtes libre, choisissez le Logiciel Libre.

  2. #2
    Membre éclairé Avatar de slimjoe
    Homme Profil pro
    Inscrit en
    Juin 2005
    Messages
    647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Canada

    Informations forums :
    Inscription : Juin 2005
    Messages : 647
    Points : 789
    Points
    789
    Par défaut
    Salut!

    Si je résume, tu cherches à exécuter du code que l'utilisateur restreint ne peut pas normalement faire c'est ça ?

    Si c'est le cas, peut-être est-ce que l'impersonalisation pourrait t'aider. L'impersonalisation est le fait d'exécuter une section de code avec d'autres privilèges que ceux de l'utilisateur connecté à la session.

    Je te suggère de regarder l'API LogonUser pour de plus amples détails.

    Google :
    http://www.google.fr/search?q=delphi...x=&startPage=1

    Je dis peut-être n'importe quoi remarque... Je n'ai jamais utilisé LogonUser autrement que pour faire des tests ici et là....

    Bon dev!
    -Slimjoe

  3. #3
    Membre confirmé Avatar de TryExceptEnd
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2006
    Messages
    501
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2006
    Messages : 501
    Points : 574
    Points
    574
    Par défaut
    Citation Envoyé par slimjoe
    Salut!

    Bion dev!
    merchi, ge fais voi ça.
    Si vous êtes libre, choisissez le Logiciel Libre.

  4. #4
    Expert éminent
    Avatar de Lung
    Profil pro
    Analyste-programmeur
    Inscrit en
    Mai 2002
    Messages
    2 664
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste-programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 664
    Points : 6 967
    Points
    6 967
    Par défaut
    Citation Envoyé par TryExceptEnd
    mais sous un compte limité j'ai un accès restreint au registre sous la clé HKEY_LOCAL_MACHINE, alors que j’en ai besoin pour partager les mêmes données pour tout les utilisateurs.
    Si tu veux seulement lire dans HKEY_LOCAL_MACHINE, tu peux dire ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Reg.Access := KEY_EXECUTE;
    Reg est ton objet TRegistry.

    L'urgent est fait, l'impossible est en cours, pour les miracles prévoir un délai. ___ Écrivez dans un français correct !!

    C++Builder 5 - Delphi 6#2 Entreprise - Delphi 2007 Entreprise - Delphi 2010 Architecte - Delphi XE Entreprise - Delphi XE7 Entreprise - Delphi 10 Entreprise - Delphi 10.3.2 Entreprise - Delphi 10.4.2 Entreprise - Delphi 11.1 Entreprise
    OpenGL 2.1 - Oracle 10g - Paradox - Interbase (XE) - PostgreSQL (15.4)

  5. #5
    Membre confirmé Avatar de TryExceptEnd
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2006
    Messages
    501
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2006
    Messages : 501
    Points : 574
    Points
    574
    Par défaut
    Le problème viens de l'écriture dans le registre, pas dans la lecture.
    Il n'y aurait pas une clef dans le registre accéssible en écriture par tout les utilisateurs du PC ?
    Si vous êtes libre, choisissez le Logiciel Libre.

  6. #6
    Rédacteur
    Avatar de Pedro
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    5 411
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 5 411
    Points : 8 078
    Points
    8 078
    Par défaut
    Salut
    Normalement, ce genre de clés se trouve dans HKEY_USERS
    Pedro
    Aucune réponse aux sollicitations techniques par MP

    Faut pas attendre d'en avoir besoin pour s'en servir... (Lucien Stéphane)

    Les pages Source C'est bon. Mangez-en!
    Le défi Delphi
    Règles du forum - FAQ Delphi - Pensez au chtit
    Aéroclub Bastia Saint-Exupéry

  7. #7
    Membre chevronné

    Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2002
    Messages
    1 288
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Août 2002
    Messages : 1 288
    Points : 1 936
    Points
    1 936
    Par défaut
    et dans HKEY_USERS\.DEFAULT?
    Delphi 7/XE2/XE3
    C#
    Oracle 9i à 12c
    SQL Server 2008 à 2014

  8. #8
    Membre confirmé Avatar de TryExceptEnd
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2006
    Messages
    501
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2006
    Messages : 501
    Points : 574
    Points
    574
    Par défaut
    Citation Envoyé par Pedro
    Salut
    Normalement, ce genre de clés se trouve dans HKEY_USERS
    Malheureusement, pas cette clef aussi.
    Peut-être une fonction de l'API Windows ?
    Si vous êtes libre, choisissez le Logiciel Libre.

  9. #9
    Expert éminent
    Avatar de Lung
    Profil pro
    Analyste-programmeur
    Inscrit en
    Mai 2002
    Messages
    2 664
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste-programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 664
    Points : 6 967
    Points
    6 967
    Par défaut
    Sinon, pour exécuter quelque chose en tant qu'administrateur, j'utilise CreateProcessWithLogonW.
    C'est peut-être une piste ...

    L'urgent est fait, l'impossible est en cours, pour les miracles prévoir un délai. ___ Écrivez dans un français correct !!

    C++Builder 5 - Delphi 6#2 Entreprise - Delphi 2007 Entreprise - Delphi 2010 Architecte - Delphi XE Entreprise - Delphi XE7 Entreprise - Delphi 10 Entreprise - Delphi 10.3.2 Entreprise - Delphi 10.4.2 Entreprise - Delphi 11.1 Entreprise
    OpenGL 2.1 - Oracle 10g - Paradox - Interbase (XE) - PostgreSQL (15.4)

  10. #10
    Expert éminent sénior
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    10 731
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 10 731
    Points : 15 136
    Points
    15 136
    Par défaut
    Salut !
    j'utilise CreateProcessWithLogonW
    Si je me rappelle bien, on est obligé de fournir le mot de passe pour utiliser cette fonction, non ? D'ailleurs, mon sdk me dit :
    lpPassword
    [in] Pointer to a null-terminated string that specifies the clear-text password for the lpUsername account.
    Ce qui veut dire que ceux qui utilisent ce prog doivent avoir le mot de passe "Admin", ou que le mdp est codé en dur dans l'exe (pas malin, si le mdp est changé [de temps en temps, comme il se doit], pâté).
    Pas terrible...

    pour partager les mêmes données pour tout les utilisateurs.
    moi, j'utiliserais un Ini.
    Plus souple, moins risqué que de bricoler avec le registre, d'autant plus qu'avec Vista, il risque d'y avoir d'autres soucis...

    Mes 2 cts,
    --
    jp
    Il a à vivre sa vie comme ça et il est mûr sur ce mur se creusant la tête : peutêtre qu'il peut être sûr, etc.
    Oui, je milite pour l'orthographe et le respect du trait d'union à l'impératif.
    Après avoir posté, relisez-vous ! Et en cas d'erreur ou d'oubli, il existe un bouton « Modifier », à utiliser sans modération
    On a des lois pour protéger les remboursements aux faiseurs d’argent. On n’en a pas pour empêcher un être humain de mourir de misère.
    Mes 2 cts,
    --
    jp

  11. #11
    Expert éminent
    Avatar de Lung
    Profil pro
    Analyste-programmeur
    Inscrit en
    Mai 2002
    Messages
    2 664
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste-programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 664
    Points : 6 967
    Points
    6 967
    Par défaut
    Citation Envoyé par Jipété
    Si je me rappelle bien, on est obligé de fournir le mot de passe pour utiliser cette fonction, non ? D'ailleurs, mon sdk me dit :
    Ce qui veut dire que ceux qui utilisent ce prog doivent avoir le mot de passe "Admin", ou que le mdp est codé en dur dans l'exe (pas malin, si le mdp est changé [de temps en temps, comme il se doit], pâté).
    Pas terrible...
    Oui il faut fournir le mot de passe.
    C'est pas formidable, je suis d'accord, mais selon le cas, ça peut rendre service.
    Faut voir ...
    L'urgent est fait, l'impossible est en cours, pour les miracles prévoir un délai. ___ Écrivez dans un français correct !!

    C++Builder 5 - Delphi 6#2 Entreprise - Delphi 2007 Entreprise - Delphi 2010 Architecte - Delphi XE Entreprise - Delphi XE7 Entreprise - Delphi 10 Entreprise - Delphi 10.3.2 Entreprise - Delphi 10.4.2 Entreprise - Delphi 11.1 Entreprise
    OpenGL 2.1 - Oracle 10g - Paradox - Interbase (XE) - PostgreSQL (15.4)

  12. #12
    Membre confirmé Avatar de TryExceptEnd
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2006
    Messages
    501
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2006
    Messages : 501
    Points : 574
    Points
    574
    Par défaut
    Citation Envoyé par Jipété
    Salut !

    Si je me rappelle bien, on est obligé de fournir le mot de passe pour utiliser cette fonction, non ? D'ailleurs, mon sdk me dit :
    Ce qui veut dire que ceux qui utilisent ce prog doivent avoir le mot de passe "Admin", ou que le mdp est codé en dur dans l'exe (pas malin, si le mdp est changé [de temps en temps, comme il se doit], pâté).
    Pas terrible...

    moi, j'utiliserais un Ini.
    Plus souple, moins risqué que de bricoler avec le registre, d'autant plus qu'avec Vista, il risque d'y avoir d'autres soucis...

    Mes 2 cts,
    --
    jp
    Je précise que les données à partager sont confidentiels et ne sont utilisés que par l'application sans intervention des utilisateurs.
    Si vous êtes libre, choisissez le Logiciel Libre.

  13. #13
    Membre éclairé Avatar de slimjoe
    Homme Profil pro
    Inscrit en
    Juin 2005
    Messages
    647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Canada

    Informations forums :
    Inscription : Juin 2005
    Messages : 647
    Points : 789
    Points
    789
    Par défaut
    Citation Envoyé par Jipété
    Si je me rappelle bien, on est obligé de fournir le mot de passe pour utiliser cette fonction, non ?
    J'espère bien que l'on doive fournir une authentification : on bidouille le registre!!

    C'est pourtant simple. Si l'utilisateur connecté à la session n'a pas les droits de jouer dans le registre, il faut impersonnaliser un utilisateur aux permissions plus grandes. Un peu comme quand on shift+right click sur une application et que l'on sélectionne "Run as...".

    Autrement, en permettant à n'importe qui de faire n'importe quoi, Windows ouvrirait un énorme trou de sécurité.

    Je suis d'accord avec l'idée du .INI (ou mieux d'un fichiers XML) mais ça dépend jusqu'où tu es prêt à modifier ton appli. Sous Win Vista (dans la configuration par défaut des utilisateurs) aussitôt qu'une appli tente d'accéder au registre il faut s'authentifier.

    Bon dev!
    -Slimjoe

  14. #14
    Membre éclairé Avatar de slimjoe
    Homme Profil pro
    Inscrit en
    Juin 2005
    Messages
    647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Canada

    Informations forums :
    Inscription : Juin 2005
    Messages : 647
    Points : 789
    Points
    789
    -Slimjoe

  15. #15
    Expert éminent sénior
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    10 731
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 10 731
    Points : 15 136
    Points
    15 136
    Par défaut
    D'un des liens :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    hToken := PerformLogon('Chris', 'DelphiDomain', 'MyPassword');
    Et comme je le disais ce matin, le jour où il change, adieu Berthe !

    Un fichier d'initialisation dans le dossier du prog, c'est si compliqué ?

    Mes 2 cts,
    --
    jp
    Il a à vivre sa vie comme ça et il est mûr sur ce mur se creusant la tête : peutêtre qu'il peut être sûr, etc.
    Oui, je milite pour l'orthographe et le respect du trait d'union à l'impératif.
    Après avoir posté, relisez-vous ! Et en cas d'erreur ou d'oubli, il existe un bouton « Modifier », à utiliser sans modération
    On a des lois pour protéger les remboursements aux faiseurs d’argent. On n’en a pas pour empêcher un être humain de mourir de misère.
    Mes 2 cts,
    --
    jp

  16. #16
    Membre confirmé Avatar de TryExceptEnd
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2006
    Messages
    501
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2006
    Messages : 501
    Points : 574
    Points
    574
    Par défaut
    Citation Envoyé par Jipété
    Et comme je le disais ce matin, le jour où il change, adieu Berthe !

    Un fichier d'initialisation dans le dossier du prog, c'est si compliqué ?

    Mes 2 cts,
    --
    jp
    Un fichier INI n'as aucune protection, on peut y accéder, le réecrire, le détruire...

    Pourquoi il n'y aurait pas une clef accéssible a tous ?
    Si vous êtes libre, choisissez le Logiciel Libre.

  17. #17
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    393
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 393
    Points : 637
    Points
    637
    Par défaut
    le registre aussi tu peux le modifier, tu peux crypter ton ini ce sera tout aussi fiable et plus propre ...

Discussions similaires

  1. Accès aux registres Windows en C
    Par Poupinelelapin dans le forum C
    Réponses: 1
    Dernier message: 11/07/2009, 08h35
  2. [Windows]accès base de registre windows
    Par Greg01 dans le forum API standards et tierces
    Réponses: 27
    Dernier message: 05/06/2007, 15h14
  3. Réponses: 1
    Dernier message: 20/09/2005, 21h15
  4. Accès à la base de registre windows à distance
    Par xavame dans le forum Sécurité
    Réponses: 4
    Dernier message: 13/07/2005, 15h23
  5. acces à postgresql depuis windows
    Par webdoing dans le forum PostgreSQL
    Réponses: 3
    Dernier message: 08/03/2004, 11h06

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