Практическое руководство. Назначение службам контекста безопасности

Примечание.

Эта статья не относится к размещенным службам в .NET. Последние сведения об использовании Microsoft.Extensions.Hosting.BackgroundService служб Windows и шаблоне рабочей службы см. в следующих статье:

По умолчанию службы работают в контексте безопасности, отличном от того, в котором работает вошедший в систему пользователь. Службы работают в контексте стандартной системной учетной записи с именем LocalSystem. Она дает им другие права на доступ к системным ресурсам (не такие, как у пользователя). Эту ситуацию можно изменить, указав другую учетную запись пользователя, под которой будет работать служба.

Чтобы задать контекст безопасности, для процесса, в котором выполняется служба, нужно изменить свойство Account. Это свойство позволяет задать для службы один из четырех типов учетных записей.

  • User. Система запрашивает действительное имя пользователя и пароль, когда служба устанавливается и запускается в контексте учетной записи, указанной одним пользователем по сети.

  • LocalService. Выполняется в контексте учетной записи, которая аналогична учетной записи непривилегированного пользователя локального компьютера. Удаленным серверам при этом передаются учетные данные анонимного пользователя.

  • LocalSystem. Выполняется в контексте учетной записи, которая предоставляет широкие локальные привилегии. Удаленным серверам при этом передаются учетные данные компьютера.

  • NetworkService. Выполняется в контексте учетной записи, которая аналогична учетной записи непривилегированного пользователя локального компьютера. Удаленным серверам при этом передаются учетные данные компьютера.

Дополнительные сведения см. в описании перечисления ServiceAccount.

Назначение службам контекста безопасности

  1. Создав службу, добавьте для нее необходимые установщики. Дополнительные сведения см. в руководстве по добавлению установщиков в приложение-службу.

  2. В конструкторе откройте класс ProjectInstaller и щелкните установщик процессов службы, с которой вы работаете.

    Примечание.

    В классе ProjectInstaller для каждого приложения-службы есть по крайней мере два компонента установки: установщик процессов для всех служб в проекте и установщик для каждой службы приложения. Сейчас вам нужно выбрать ServiceProcessInstaller.

  3. В окне Свойства задайте для свойства Account соответствующее значение.

См. также