Cuestión : Personificar a usuario abierto una sesión

Tengo un servicio que esté funcionando como cuenta del sistema local.  Necesito conseguir a acceso a el logg en registro de los usuarios.  He intentado personificar el usuario abierto una sesión pero ninguna suerte.  Aparece cambiar la personificación, pero cuando tengo acceso al registro él sigue siendo los servicios.  ¿Cualquier persona tiene cualquier idea? el

I intentó conseguir los usuarios simbólicos como esto usar la función below.

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

pLog.InfoFormat (“nombre de la identidad antes de la personificación: {0}. ”, WindowsIdentity.GetCurrent (). Nombre);
ImpersonateLoggedOnUser (userToken);
pLog.InfoFormat (“nombre de la identidad después de la personificación: {0}. ”, WindowsIdentity.GetCurrent (). Nombre); Llave del
Microsoft.Win32.RegistryKey = Microsoft.Win32.Registry.CurrentUser.OpenSubKey (@ " Software \ prueba "); sSessionId del
= Convert.ToString (key.GetValue (“Session”));
RevertToSelf del
();
del

IntPtr GetLoggedOnUserToken del
} () {el
IntPtr primaryToken = IntPtr.Zero; el

//Either especifica el intento del explicitly
//Or del processID para conseguirlo de un proceso poseído por el user.
//In este caso que asume que hay solamente un proceso de explorer.exe

[] picosegundo = Process.GetProcessesByName (“explorer"); processId del
internacional = -1; //=processId
si (picosegundo. Longitud > 0)
{processId del
= picosegundo [0]. Identificación;

del
} si (processId > 1)
{símbolo del
IntPtr = IntPtr.Zero; bool del
retVal = falso;
de proceso p = falta de información; try
{
del

p = Process.GetProcessById (processId);
{secuencia del retén del

del
} (ArgumentException) del

detalla = String.Format (“ProcessID {0} no disponibles”, processId);
Debug.WriteLine (detalles); tiro del
; token
de la personificación del

//Gets del
} retVal = OpenProcessToken (p.Handle, TOKEN_ALL_ACCESS, símbolo de la referencia);
si (== retVal verdad)
{SECURITY_ATTRIBUTES sa del

= nuevo SECURITY_ATTRIBUTES ();
sa.nLength = (uint) Marshal.SizeOf (sa);

//Convert el símbolo de la personificación en el token
retVal = DuplicateTokenEx (símbolo del
,
TOKEN_ALL_ACCESS, referencia sa,
(internacional) ProcessUtility.SECURITY_IMPERSONATION_LEVEL.SecurityImpersonation,
(internacional) ProcessUtility.TOKEN_TYPE.TokenImpersonation, referencia del
del
primaryToken);

//Close el símbolo que era previamente opened.
CloseHandle (símbolo);
si (== retVal falso)
{mensaje de la secuencia del
= String.Format (“error de DuplicateTokenEx: {0}”, Marshal.GetLastWin32Error ());
Debug.WriteLine (mensaje); else
{mensaje de la secuencia del
= String.Format (“error del
del
} del
} de OpenProcessToken: {0}”, Marshal.GetLastWin32Error ());
Debug.WriteLine (mensaje); la vuelta del
del
del

}} primaryToken;
del
} class= del

Respuesta : Personificar a usuario abierto una sesión

Hola fitaliano,

Chascar las etiquetas existentes unas de los, después las herramientas del tecleo - etiquetas XY de la carta - agregan etiquetas de la carta. Chascar en el campo de la gama de la etiqueta y seleccionar las células I2: I44. Fijar la posición de la etiqueta para centrar y para chascar la AUTORIZACIÓN.

Ver atado para el resultado.

aclamaciones, teylyn
Otras soluciones  
 
programming4us programming4us