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++/CLI Discussion :

Utilisation de LogonUser


Sujet :

C++/CLI

  1. #1
    DrQ
    DrQ est d�connect�
    Membre �m�rite
    Avatar de DrQ
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    388
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 388
    Par d�faut Utilisation de LogonUser
    Bonjour,

    Je souhaite ex�cuter une commande sur un poste distant mais en utilisant un compte local du poste distant.

    voici le code que j'utilise :
    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
     
    if (LogonUser(_strUsername, _strDomain, _strPassword, LOGON32_LOGON_INTERACTIVE, LOGON32_PROVIDER_DEFAULT, out hToken))
    {
             System.Diagnostics.Trace.TraceInformation("  Logon succeed!");
     
             if (DuplicateToken(hToken, 2, out hTokenDuplicate))
             {
                    oWindowsIdentity = new WindowsIdentity(hToken);
                    oWindowsImpersonationContext = oWindowsIdentity.Impersonate();
     
                    // Mon traitement
     
                    oWindowsImpersonationContext.Undo();
     
                    oWindowsImpersonationContext.Dispose();
                    oWindowsImpersonationContext = null;
                    oWindowsIdentity.Dispose();
                    oWindowsIdentity = null;
              }
              if (hTokenDuplicate != IntPtr.Zero) CloseHandle(hTokenDuplicate);
    }
    else 
    {
             System.Diagnostics.Trace.TraceWarning("  Logon failed  : " + GetLastError());
    }
    Ce code fonctionne tr�s bien avec un compte d'un domaine NT mais pas avec un compte local de la machine distante.
    Quelqu'un aurait une id�e ?

    D'avance merci.

  2. #2
    Membre �m�rite
    Profil pro
    Inscrit en
    Ao�t 2003
    Messages
    835
    D�tails du profil
    Informations personnelles :
    Localisation : France, Paris (�le de France)

    Informations forums :
    Inscription : Ao�t 2003
    Messages : 835
    Par d�faut
    Salut,

    Je ne vois pas comment �a peut marcher, a moins d'ex�cuter ce code sur la machine distante . Apr�s tout un compte local � cette machine n'est connu que d'elle m�me... Cela dit je ne suis pas un expert s�curit�.

    PS: d'ailleurs tu aurais surement plus de r�ponse dans le forum "windows/s�curit�" je pense

  3. #3
    DrQ
    DrQ est d�connect�
    Membre �m�rite
    Avatar de DrQ
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    388
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 388
    Par d�faut
    Le but � la base de pouvoir contr�ler la pr�sence d'un fichier ou d'un r�pertoire sur une machine o� le compte executant le code n'est pas les droits.
    Du coup je dois passer par un syst�me d'impersonnalisation pour pouvoir faire ce que je veux.
    Et comme Microsoft nous offre un joli moyen de te faire passer pour qui tu veux reste plsu qu'� trouver comment l'utiliser correctement

Discussions similaires

  1. utiliser les tag [MFC] [Win32] [.NET] [C++/CLI]
    Par hiko-seijuro dans le forum Visual C++
    R�ponses: 8
    Dernier message: 08/06/2005, 15h57
  2. R�ponses: 4
    Dernier message: 05/06/2002, 14h35
  3. utilisation du meta type ANY
    Par Anonymous dans le forum CORBA
    R�ponses: 1
    Dernier message: 15/04/2002, 12h36
  4. [BCB5] Utilisation des Ressources (.res)
    Par Vince78 dans le forum C++Builder
    R�ponses: 2
    Dernier message: 04/04/2002, 16h01
  5. R�ponses: 2
    Dernier message: 20/03/2002, 23h01

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