Procedura: specificare il contesto di sicurezza per i servizi
Nota
Questo articolo non si applica ai servizi ospitati in .NET. Per i contenuti più recenti sui servizi Windows che usano Microsoft.Extensions.Hosting.BackgroundService e il modello worker service, vedere:
Per impostazione predefinita, i servizi vengono eseguiti in un contesto di sicurezza diverso rispetto a quello dell'utente connesso. I servizi vengono eseguiti nel contesto dell'account di sistema predefinito, chiamato LocalSystem
, che concede privilegi di accesso diversi per le risorse di sistema rispetto all'account utente. È possibile modificare questo comportamento per specificare un account utente diverso nell'ambito del quale eseguire il servizio.
Per impostare il contesto di sicurezza, è necessario modificare la proprietà Account per il processo in cui viene eseguito il servizio. Questa proprietà consente di impostare il servizio su uno di quattro tipi di account:
User
, con il quale il sistema richiede un nome utente e una password valido quando il servizio viene installato ed eseguito nel contesto di un account specificato da un singolo utente nella rete;LocalService
, con il quale il servizio viene eseguito nel contesto di un account che opera come utente senza privilegi nel computer locale e presenta credenziali anonime a eventuali server remoti;LocalSystem
, con il quale il servizio viene eseguito nel contesto di un account con privilegi estesi locali e presenta le credenziali del computer a eventuali server remoti;NetworkService
, con il quale il servizio viene eseguito nel contesto di un account che opera come utente senza privilegi nel computer locale e presenta credenziali del computer a eventuali server remoti.
Per altre informazioni, vedere l'enumerazione ServiceAccount.
Per specificare il contesto di sicurezza per un servizio
Dopo aver creato il servizio, aggiungere i programmi di installazione necessari. Per altre informazioni, vedere Procedura: Aggiungere programmi di installazione all'applicazione di servizio.
Nella finestra di progettazione accedere alla classe
ProjectInstaller
e fare clic sul programma di installazione del processo del servizio per il servizio in questione.Nota
Per ogni applicazione di servizio, esistono almeno due componenti di installazione nella classe
ProjectInstaller
, uno per installare i processi per tutti i servizi nel progetto e un programma di installazione per ogni servizio contenuto nell'applicazione. In questo caso, si vuole selezionare ServiceProcessInstaller.Nella finestra Proprietà impostare Account sul valore appropriato.