Procedimiento para especificar el contexto de seguridad de los servicios
Nota:
Este artículo no se aplica a servicios hospedados en .NET. Para el contenido más reciente sobre los servicios de Windows que utilizan Microsoft.Extensions.Hosting.BackgroundService y la plantilla del servicio de trabajo, consulte:
De forma predeterminada, los servicios se ejecutan en un contexto de seguridad diferente al del usuario que ha iniciado sesión. Los servicios se ejecutan en el contexto de la cuenta del sistema predeterminado, llamada LocalSystem
, que les da diferentes privilegios de acceso a los recursos del sistema que el usuario. Puede cambiar este comportamiento para especificar una cuenta de usuario diferente bajo la cual se debe ejecutar el servicio.
Se establece el contexto de seguridad mediante la manipulación de la propiedad Account para el proceso dentro del cual se ejecuta el servicio. Esta propiedad le permite establecer el servicio en uno de los cuatro tipos de cuenta:
User
, lo que hace que el sistema solicite un nombre de usuario y una contraseña válidos cuando el servicio está instalado y se ejecuta en el contexto de una cuenta especificada por un único usuario en la red;LocalService
, que se ejecuta en el contexto de una cuenta que actúa como usuario sin privilegios en el equipo local y presenta credenciales anónimas a cualquier servidor remoto;LocalSystem
, que se ejecuta en el contexto de una cuenta que proporciona amplios privilegios locales y presenta las credenciales del equipo a cualquier servidor remoto;Para otras tareas, considere la posibilidad de usar la cuenta
NetworkService
, que actúa como un usuario sin privilegios en el equipo local y presenta credenciales del equipo a cualquier servidor remoto.
Para obtener más información, vea la enumeración ServiceAccount.
Para especificar el contexto de seguridad de un servicio
Después de crear su servicio, agregue los instaladores necesarios para ello. Para obtener más información, vea Cómo: Agregar instaladores a una aplicación de servicio.
En el diseñador, acceda a la clase
ProjectInstaller
y haga clic en el instalador del proceso de servicio para el servicio con el que está trabajando.Nota
Para cada aplicación de servicio, hay al menos dos componentes de instalación en la clase
ProjectInstaller
: uno que instala los procesos para todos los servicios del proyecto y un instalador para cada servicio que contiene la aplicación. En este caso, desea seleccionar ServiceProcessInstaller.En la ventana Propiedades, establezca Account al valor adecuado.