She*_*eff 10 .net c# permissions service
我编写了一个服务,网站可以使用ExecuteCommand方法远程执行命令.我注意到如果网站没有在远程计算机上的管理员用户下运行,那么我在尝试执行命令时会收到权限被拒绝的异常.
servicecontroller类甚至不允许您指定任何身份验证参数.这是正确的吗?是否有一组特定的privelages用户需要而不是管理员,因为我不愿意将我们集群中的所有web服务器用户添加为服务机器上的本地管理员?
您必须临时模拟当前线程的管理员用户,然后还原.在MSDN中查找WindowsIdentity.Impersonate().
ServiceController将使用当前线程的主体来进行注册表和服务控制管理器调用,如果要操作服务,则必须确保将其设置为管理员用户.缺点是您需要将密码存储在帐户的某处,确保您使用的是SecureString,而不是以纯文本格式存储密码.