Question : Personnifier un utilisateur ouvert une session

J'ai un service qui fonctionne comme compte de système local.  Je dois obtenir à accès à l'le logg sur l'enregistrement d'utilisateurs.  J'ai essayé de ne personnifier l'utilisateur ouvert une session mais aucune chance.  Il semble changer la personnification, mais quand j'accède à l'enregistrement il est toujours les services.  N'importe qui ont toutes les idées ? le

I a essayé d'obtenir les utilisateurs symboliques comme ceci using la fonction below.

de GetLoggedOnUserToken {le
System.IntPtr userToken = GetLoggedOnUserToken () ;

pLog.InfoFormat (« nom de l'identité avant personnification : {0}.  », WindowsIdentity.GetCurrent (). Nom) ;
ImpersonateLoggedOnUser (userToken) ;
pLog.InfoFormat (« nom de l'identité après personnification : {0}.  », WindowsIdentity.GetCurrent (). Nom) ; Clef du
Microsoft.Win32.RegistryKey = Microsoft.Win32.Registry.CurrentUser.OpenSubKey (@ " Software \ essai ") ; sSessionId du
= Convert.ToString (key.GetValue (« Session »));
RevertToSelf du
() ;
du

IntPtr GetLoggedOnUserToken du
} () {le
IntPtr primaryToken = IntPtr.Zero ; le

//Either spécifient l'essai de l'explicitly
//Or de processID pour l'obtenir d'un processus possédé par l'user.
//In ce cas supposant qu'il y a seulement un processus d'explorer.exe

[] picoseconde = Process.GetProcessesByName (« explorer") ; processId du
international = -1 ; //=processId
si (picoseconde. Longueur > 0)
{processId de
= picoseconde [0]. Identification ;

du
} si (processId > 1)
{marque de
IntPtr = IntPtr.Zero ; bool du
retVal = faux ;
de processus p = nulle ; try
{
du

p = Process.GetProcessById (processId) ;
{corde de crochet du

du
} (ArgumentException) de

détaille = String.Format (« ProcessID {0} non disponibles », processId) ;
Debug.WriteLine (détails) ; jet du
; token
de personnification du

//Gets du
} retVal = OpenProcessToken (p.Handle, TOKEN_ALL_ACCESS, marque de référence) ;
si (== retVal vrai)
{SECURITY_ATTRIBUTES SA de

= nouveau SECURITY_ATTRIBUTES () ;
sa.nLength = (uint) Marshal.SizeOf (SA) ;

//Convert la marque de personnification dans le token
retVal = DuplicateTokenEx (marque de
, le
TOKEN_ALL_ACCESS, référence SA, le
(international) ProcessUtility.SECURITY_IMPERSONATION_LEVEL.SecurityImpersonation, le
(international) ProcessUtility.TOKEN_TYPE.TokenImpersonation, référence du
du
primaryToken) ;

//Close la marque qui était précédemment opened.
CloseHandle (marque) ;
si (== retVal faux)
{message de corde de
= String.Format (« erreur de DuplicateTokenEx : {0} », Marshal.GetLastWin32Error ());
Debug.WriteLine (message) ; else
{message de corde de
= String.Format (« erreur du
du
} du
} d'OpenProcessToken : {0} », Marshal.GetLastWin32Error ());
Debug.WriteLine (message) ; le retour du
du
du

}} primaryToken ;
du
} class= de

Réponse : Personnifier un utilisateur ouvert une session

Bonjour fitaliano,

Cliquer les étiquettes existantes l'unes des, puis les outils de clic - étiquettes DE X/Y de diagramme - ajoutent des étiquettes de diagramme. Cliquer dans le domaine de chaîne d'étiquette et choisir les cellules I2 : I44. Placer la position d'étiquette pour centrer et cliquer l'OK.

Voir attaché pour le résultat.

à la votre, teylyn
Autres solutions  
  •  MS Excel 2007 et pdf - l'exportation vers le pdf prend de longues heures !
  •  Dans le Perl, comment j'ajoute une valeur à la liste, puis le contrôle pour voir si la valeur existent avant d'ajouter une nouvelle valeur
  •  Comment fais j'initialiser de la HP BL460c G6 de san et de la HP XP 240000
  •  Comment fais j'employer une clef de permis de volume sur un ordinateur de HP avec du CD de restauration
  •  Emplacement primaire de deux SCCM dans l'annuaire actif
  •  L'initiateur et la HP D2D de l'iSCSI R2 du serveur 2008 de Windows GERCENT l'issue
  •  Stocker le dossier dans le mysql using connector.net et le champ de goutte
  •  Carte vidéo d'USB - bit 32 sur le matériel travaillant au niveau du bit 64 ?
  •  asp.net que j'essaye de convertir une forme de HTML en forme d'aspx ou ? ce qui jamais. Aide du besoin sur la façon dont à à elle.
  •  Winzip 12 issues de secours du travail ?
  •  
    programming4us programming4us