Практическое руководство. Назначение службам контекста безопасности
Примечание.
Эта статья не относится к размещенным службам в .NET. Последние сведения об использовании Microsoft.Extensions.Hosting.BackgroundService служб Windows и шаблоне рабочей службы см. в следующих статье:
По умолчанию службы работают в контексте безопасности, отличном от того, в котором работает вошедший в систему пользователь. Службы работают в контексте стандартной системной учетной записи с именем LocalSystem
. Она дает им другие права на доступ к системным ресурсам (не такие, как у пользователя). Эту ситуацию можно изменить, указав другую учетную запись пользователя, под которой будет работать служба.
Чтобы задать контекст безопасности, для процесса, в котором выполняется служба, нужно изменить свойство Account. Это свойство позволяет задать для службы один из четырех типов учетных записей.
User
. Система запрашивает действительное имя пользователя и пароль, когда служба устанавливается и запускается в контексте учетной записи, указанной одним пользователем по сети.LocalService
. Выполняется в контексте учетной записи, которая аналогична учетной записи непривилегированного пользователя локального компьютера. Удаленным серверам при этом передаются учетные данные анонимного пользователя.LocalSystem
. Выполняется в контексте учетной записи, которая предоставляет широкие локальные привилегии. Удаленным серверам при этом передаются учетные данные компьютера.NetworkService
. Выполняется в контексте учетной записи, которая аналогична учетной записи непривилегированного пользователя локального компьютера. Удаленным серверам при этом передаются учетные данные компьютера.
Дополнительные сведения см. в описании перечисления ServiceAccount.
Назначение службам контекста безопасности
Создав службу, добавьте для нее необходимые установщики. Дополнительные сведения см. в руководстве по добавлению установщиков в приложение-службу.
В конструкторе откройте класс
ProjectInstaller
и щелкните установщик процессов службы, с которой вы работаете.Примечание.
В классе
ProjectInstaller
для каждого приложения-службы есть по крайней мере два компонента установки: установщик процессов для всех служб в проекте и установщик для каждой службы приложения. Сейчас вам нужно выбрать ServiceProcessInstaller.В окне Свойства задайте для свойства Account соответствующее значение.