gpt4 book ai didi

.net - 如何在 .net 中为 Windows 服务设置 ACL?

转载 作者:可可西里 更新时间:2023-11-01 09:25:38 25 4
gpt4 key购买 nike

我有一项服务需要能够通过按钮启动和停止。我在一个单独的程序中使用 ServiceController,当我以管理员身份运行这个单独的程序时,一切都按预期工作。但是,我需要能够像任何人一样控制此服务。如何为我的服务设置权限,以便每个人都可以完全控制它?这需要作为服务或安装的一部分以编程方式完成。它是一个用 vb.net 编写的本地服务。

最佳答案

您有几个选择:

1) 您可以要求您的应用程序以管理员身份运行。每次您的应用程序启动时,系统都会提示您使用 UAC(在 Windows 7 和 Vista 上),并且您的应用程序将被提升到所需的级别。

Run .NET application as administrator

2) 当需要停止和启动服务时,您的应用程序可以请求提升。它会通过在更高级别启动另一个应用程序来执行此操作,而这个其他应用程序将执行实际的启动和停止操作。

How to elevate privileges only when required?

3) 首选选项,恕我直言 - 您应该构建始终运行的服务,但除了通过 TCP/IP、命名管道或其他一些通信机制监听请求外,什么也不做。然后,您的服务可以启动或停止执行实际工作的线程。

4) 您可以修改服务权限。这里有一些帖子提供了一些相关信息(我仍然更喜欢选项 3):

Start / Stop a Windows Service from a non-Administrator user account

http://msmvps.com/blogs/erikr/archive/2007/09/26/set-permissions-on-a-specific-service-windows.aspx

http://fstaal01.home.xs4all.nl/swsc-us.html

更新

我根据 Harry 的评论更改了一些文本并添加了选项 4。似乎有调整权限的方法。这些最初需要管理员权限,但如果您将 swsc(第三个链接)之类的东西与您的安装捆绑在一起,您可以使用它来为您设置权限。我不确定这样做是否对许可有任何影响。或者,您可以使用他粘贴的代码的变体。

关于.net - 如何在 .net 中为 Windows 服务设置 ACL?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11637764/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com