如何:为服务指定安全上下文

注意

本文不适用于 .NET 中的托管服务。 有关使用 Microsoft.Extensions.Hosting.BackgroundService 的 Windows 服务上的最新内容和辅助角色服务模板,请参阅:

默认情况下,服务在与登录用户不同的安全性上下文中运行。 服务在名为 LocalSystem 的默认系统帐户的上下文中运行,这样使服务拥有与用户不同的针对系统资源的访问权限。 可以更改此行为以指定应在其下运行服务的其他用户帐户。

可以通过操作服务运行于其中的进程的 Account 属性来设置安全性上下文。 此属性允许将服务设置为以下四种帐户类型之一:

  • User,该帐户会导致系统在安装服务时提示输入有效的用户名和密码,并在网络上单个用户指定的帐户的上下文中运行;

  • LocalService,该帐户在用作本地计算机上的非特权用户的帐户的上下文中运行,并向任意远程服务器提供匿名凭据;

  • LocalSystem,该帐户在提供广泛本地权限的帐户的上下文中运行,并向任意远程服务器提供计算机凭据;

  • NetworkService,该帐户在用作本地计算机上的非特权用户的帐户的上下文中运行,并向任意远程服务器提供计算机凭据。

有关详细信息,请参见 ServiceAccount 枚举。

为服务指定安全性上下文

  1. 在创建服务后为其添加必要的安装程序。 有关详细信息,请参阅如何:将安装程序添加到服务应用程序

  2. 在设计器中,访问 ProjectInstaller 类并单击正在使用的服务的服务进程安装程序。

    备注

    对于每个服务应用程序,在 ProjectInstaller 类中至少有两个安装组件 — 一个用于安装项目中所有服务的进程,另一个是应用程序包含的每个服务的安装程序。 在这种情况下,你要选择 ServiceProcessInstaller

  3. 在“属性”窗口中,将 Account 设置为适当的值。

请参阅