Acceso a objetos en un servicio

10/03/2005 - 19:54 por Rafael | Informe spam
Hola:

Estoy haciendo un programa que necesita acceder a un fichero mapeado en
memoria (memory mapped file) que ha sido creado por otro programa que corre
como un servicio usando la utilidad XYNTservice.
Al intentar el acceso da error de 'acceso denegado'. He intentado cambiar
los permisos de acceso del fichero para otro usuario pero no funciona.
Tampoco sirve cambiar el usuario bajo el que corre el servicio porque
entonces la ventana del programa desaparece.
Puee alguien decirme cómo acceder a un objeto (fichero mapeado) creado por
localsystem desde un programa con otro usuario?

Gracias
Rafael

Preguntas similare

Leer las respuestas

#1 Rodrigo Corral [MVP]
11/03/2005 - 12:02 | Informe spam
La solución pasa por dar los permisos de acceso adecuados cuando el creas el
fichero mapeado en memoria.


Un saludo
Rodrigo Corral González [MVP]

FAQ de microsoft.public.es.vc++
http://rcorral.mvps.org
Respuesta Responder a este mensaje
#2 Rafael
11/03/2005 - 18:47 | Informe spam
Hola:

Gracias por la respuesta. Ya he intentado eso con la función
SetUserObjectSecurity() pero me sigue dando error 'acceso denegado', aunque
la función dice que se ejecuta correctamente.
No sé si es que esta no es la función que hay que usar, o bien el handle de
la memoria no es el adecuado, o es que hay que hacer algo más. ¿Podrías
darme alguna información más?

Gracias
Rafael


"Rodrigo Corral [MVP]" wrote in
news::

La solución pasa por dar los permisos de acceso adecuados cuando el
creas el fichero mapeado en memoria.


Respuesta Responder a este mensaje
#3 Eugenio Miró
19/03/2005 - 00:19 | Informe spam
Si el archivo lo crea el servicio y el folder adonde lo crea tiene permisos
de CREATOR OWNER Full Control y para el usuario que está corriendo el
programa no tiene permisos, al crear el file el dueño del mismo es el usuario
que corre el servicio. Una solucion sería hacer correr al servicio con el
usuario que estás usando para usar la aplicacion, otra sería crearlo en un
directorio adonde los usarios tengan permisos tanto para SYSTEM (si el
servicio corre como LocalSystemAccount) y para el usuario que corre tu
programa.
Estaría bien tambien que pusieras un pedacito del código adonde abres el
file y adonde lo mapeas a memoria para revisar los permisos con que lo estás
creando.
Saludos.

"Rafael" wrote:

Hola:

Estoy haciendo un programa que necesita acceder a un fichero mapeado en
memoria (memory mapped file) que ha sido creado por otro programa que corre
como un servicio usando la utilidad XYNTservice.
Al intentar el acceso da error de 'acceso denegado'. He intentado cambiar
los permisos de acceso del fichero para otro usuario pero no funciona.
Tampoco sirve cambiar el usuario bajo el que corre el servicio porque
entonces la ventana del programa desaparece.
Puee alguien decirme cómo acceder a un objeto (fichero mapeado) creado por
localsystem desde un programa con otro usuario?

Gracias
Rafael

email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida