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# Discussion :

[C#] Comment s'identifier pour modifier base de registre ?


Sujet :

C#

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 20
    Points : 8
    Points
    8
    Par défaut [C#] Comment s'identifier pour modifier base de registre ?
    Bonjour,

    Je souhaite modifier la base de registre d'un PC sous domaine Windows server 2003
    Mon problème est que mon programme est appelé par un utilisateur simple, n'ayant donc pas les droits de modifier les clés.

    Comment faire pour dans mon programme, m'identifier comme administrateur et ainsi accéder en écriture au registre ?

    Merci.

  2. #2
    Membre actif Avatar de DeusXL
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    300
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 300
    Points : 272
    Points
    272
    Par défaut
    Bonjour,
    Il me semble que pour faire ça tu dois passer par l'API "Advapi32.DLL", fonction LogonUser :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    [DllImport("Advapi32.dll")]
    public static extern bool LogonUser(string sUserName,
            string sDomain,
            string sUserPassword,
            uint dwLogonType,
            uint dwLogonProvider,
            out IntPtr pToken);
     
    [DllImport("Kernel32.dll")]
    public static extern void CloseHandle(IntPtr Token);
    Ensuite, dans ton programme tu fais cela :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    using System;
    using System.Runtime.InteropServices;
    using System.Security.Principal;
    //Code précédent...
    IntPtr pToken;
    if(LogonUser(<login admin>, "", <password admin>, 2, 0, out pToken))
    {
            WindowsIdentity.Impersonate(pToken);
            //Réaliser les opérations en tant qu'admin...
            CloseHandle(pToken);
    }

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 20
    Points : 8
    Points
    8
    Par défaut
    Excellent, merci.

    Peux-tu me dire à quoi correspondent les 4éme et 5éme paramétres, à savoir le 2 et le 0 ?

  4. #4
    Membre actif Avatar de DeusXL
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    300
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 300
    Points : 272
    Points
    272
    Par défaut
    Citation Envoyé par daveg
    Peux-tu me dire à quoi correspondent les 4éme et 5éme paramétres, à savoir le 2 et le 0 ?
    Moi non j'ai toujours laissé ces valeurs :p
    Par contre le descriptif de LogonUser le peut
    PS : Saches que ces valeurs sont :
    2 = LOGON32_LOGON_INTERACTIVE
    0 = LOGON32_PROVIDER_DEFAULT

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 20
    Points : 8
    Points
    8
    Par défaut
    Merci.

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

Discussions similaires

  1. [PHP 5.4] probléme pour modifier base access
    Par laurentbatch dans le forum Langage
    Réponses: 6
    Dernier message: 19/08/2013, 09h27
  2. [Toutes versions] Pas le utilisateur + mot de passe pour modifier Base de données Acces97
    Par MASSAKA dans le forum Access
    Réponses: 4
    Dernier message: 04/08/2010, 11h44
  3. Réponses: 1
    Dernier message: 23/10/2009, 10h09
  4. comment utiliser Notepad pour modifier un fichier texte?
    Par moon13_698 dans le forum Autres Logiciels
    Réponses: 7
    Dernier message: 06/05/2006, 15h41
  5. Comment empêcher l'accès à la base de registre ?
    Par AT dans le forum API, COM et SDKs
    Réponses: 11
    Dernier message: 29/03/2005, 09h44

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