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

Замечание

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

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

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

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

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

  • LocalSystem, который выполняется в контексте учетной записи, предоставляющей обширные локальные привилегии, и предоставляет учетные данные компьютера любому удаленному серверу;

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

Дополнительную информацию см. в перечислении ServiceAccount.

Указание контекста безопасности для службы

  1. После создания службы добавьте необходимые инсталляторы. Дополнительные сведения см. в разделе "Практическое руководство. Добавление установщиков в приложение службы".

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

    Замечание

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

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

См. также