嗨,我正在学习创建一个 Windows 服务,我搜索了很多,并没有清楚地了解Account
ServiceProcessInstaller 类中的属性,任何人都可以解释一下 1.User 2.LocasService 等之间的
区别
。
2 回答
MSDN 上的ServiceAccount Enumeration页面有一个描述每个帐户的表。
最佳做法是使用适合您的服务功能的具有最低权限的帐户。通常这意味着使用LocalService帐户,除非您正在做一些需要LocalSystem权限的事情。
LocalSystem 基本上可以自由支配机器,而 LocalService/NetworkService 具有与标准用户帐户大致相同的权限。如您所料,在特定用户的上下文中运行服务将为该服务提供该用户的权限。
我认为最好的是:
LocalService
在本地计算机上充当非特权用户的帐户,并向任何远程服务器提供匿名凭据。
LocalSystem 服务控制管理器使用的帐户,在本地计算机上具有广泛的权限并充当网络上的计算机。
NetworkService
提供广泛的本地权限并向任何远程服务器提供计算机凭据的帐户。
用户
由网络上特定用户定义的帐户。为 ServiceProcessInstaller.Account 成员指定 User 会导致系统在安装服务时提示输入有效的用户名和密码,除非您为 ServiceProcessInstaller 实例的 Username 和 Password 属性设置了值。
来自:https ://msdn.microsoft.com/en-us/library/system.serviceprocess.serviceaccount(v=vs.110).aspx