Si es asi, no me parece que el problema sea en la rutina, mas bien en como creas el proceso. Esta rutina mia la probe recien con W10 bajo dominio y funciona joya (pero es lo mismo)

***
* Function ChangeUserAccount
* Ocasiona que el programa se ejecute utilizando una cuenta de usuario diferente
***
Function ChangeUserAccount(cUser, cPassword, cDomain)
Local nRes

#define LOGON32_PROVIDER_DEFAULT        0
#define LOGON32_LOGON_INTERACTIVE       2
#define LOGON32_LOGON_NETWORK           3
#define LOGON32_LOGON_BATCH             4
#define LOGON32_LOGON_SERVICE           5
#define LOGON32_LOGON_UNLOCK            7

Declare Integer LogonUser IN AdvApi32.DLL ;
        String lpszUsername, String lpszDomain, ;
        String lpszPassword, Integer dwLogonType, ;
        Integer dwLogonProvider, Integer @phToken
Declare Integer ImpersonateLoggedOnUser IN AdvApi32.DLL Integer phToken
Declare Integer CloseHandle in Win32API Integer hObject

If Type("cDomain") <> "C"
   cDomain = ""
Endif

nToken = 0
nRes = 0

If LogonUser(cUser, cDomain, cPassword, LOGON32_LOGON_INTERACTIVE, LOGON32_PROVIDER_DEFAULT, @nToken) <> 0
   If ImpersonateLoggedOnUser(nToken) <> 0
      nRes = nToken
   else
      CloseHandle(nToken)
   Endif
Endif

Return(nRes)



***
* Function CloseUserAccount
* Revierte el usuario activo al anterior a la ejecucion de ChangeUserAccount
***
Function CloseUserAccount(nHandle)

Declare integer RevertToSelf IN AdvApi32.DLL
Declare Integer CloseHandle in Win32API Integer hObject

CloseHandle(nHandle)
RevertToSelf()

EndFunc


El 25/4/2016 a las 11:08 a. m., [email protected] escribió:

Hola Pablo! Los usuarios usan Windows 7 y estamos bajo dominio, el FileServer es un Windows 2012 R2. En la PC de los usuarios el sistema funciona bien cuando inicia pero cuando tiene que emitir un listado (para la cual usamos foxypreviewer) pasamos al usuario local para que puede acceder a su disco y cuando volvemos del Foxypreviewer que tiene que loguear con el otro usuario que tiene acceso a las base lo hace (no da error) pero no puede acceder a las carpetas donde estan los dbfs. Estoy haciendo difernetes pruebas pero cambios en la rutina pero sigue sin funcionar.

Eric!

El 2016-04-24 20:23, Pablo Pioli escribió:

En que version de Windows es? Yo tengo una rutina que es basicamente la misma y funciona hasta en Windows 10 con las ultimas actualizaciones

Saludos


El 22/4/2016 a las 3:18 p. m., [email protected] escribió:

Hola Gente Linda!!! :P

Alguien uso alguna vez o tiene en uso la rutina de Impersonater del Australiano Bernad Bout (les paso el link)

https://www.foxite.com/faq/default.aspx?id=48#

El tema que venia funcionando bien pero despues de las actualizaciones de Windows KB3149090/3146706 dejo de funcionar es porque la advapi32.dll ahora es la vesion 6.1.7601.23392. de marzo del 2016. La version anterior de Febrero trabaja sin problema. ¿Alguien tiene este problema y lo pudo arreglar?. (Por cuestiones normas de seguridad de la empesa no puedo no tener todas las actualizaciones que MS envia).

Saludos.

Eric!


Responder a