Como: Especificar o contexto de segurança para serviços
Observação
Este artigo não se aplica aos serviços hospedados no .NET. Para obter o conteúdo mais recente sobre serviços do Windows usando Microsoft.Extensions.Hosting.BackgroundService e o modelo Worker Service, consulte:
Por padrão, os serviços são executados em um contexto de segurança diferente do que o usuário que fez logon. Os serviços são executados no contexto da conta padrão do sistema, chamada LocalSystem
, que oferece a eles privilégios de acesso a recursos do sistema diferentes que os do usuário. Você pode alterar esse comportamento para especificar outra conta de usuário diferente com a qual o serviço deverá ser executado.
Você define o contexto de segurança manipulando a propriedade Account para o processo no qual o serviço é executado. Essa propriedade permite que você defina o serviço para uma entre quatro tipos de conta:
User
, que faz com que o sistema solicite um nome de usuário e uma senha válidos quando o serviço é instalado e executado no contexto de uma conta especificada por um único usuário na rede;LocalService
, que é executado no contexto de uma conta que age como um usuário sem privilégios no computador local e apresenta credenciais anônimas para qualquer servidor remoto;LocalSystem
, que é executado no contexto de uma conta que fornece privilégios locais abrangentes e apresenta as credenciais do computador para qualquer servidor remoto;NetworkService
, que é executado no contexto de uma conta que age como um usuário sem privilégios no computador local e apresenta as credenciais do computador para qualquer servidor remoto.
Para obter mais informações, consulte a enumeração ServiceAccount.
Para especificar o contexto de segurança de um serviço
Depois de criar o serviço, adicione os instaladores necessários para ele. Para obter mais informações, confira Como adicionar instaladores no seu aplicativo de serviço.
No designer, acesse a classe
ProjectInstaller
e clique no instalador do processo de serviço para o serviço com o qual você está trabalhando.Observação
Para cada aplicativo de serviço, há pelo menos dois componentes de instalação na classe
ProjectInstaller
– um que instala os processos para todos os serviços no projeto e um instalador para cada serviço que o aplicativo contém. Nesse caso, você desejará selecionar ServiceProcessInstaller.Na janela Propriedades, defina a Account para o valor apropriado.