我知道如果用户是计算机上 BUILTIN\administrators 组的成员,则不需要添加 namespace reservation使用 System.Net.HttpListener
(即 HTTP.sys)监听任何端口或 URI。
但是,是否可以在不将用户添加到 BUILTIN\administrators 组的情况下为用户或组提供所需的权限?
在我的例子中,我正在构建一个应用程序,该应用程序需要动态启动/停止许多不同且可配置的端口号上的许多 HttpListener 实例。不幸的是,我无法添加通配符端口号。我希望避免添加大量端口。
This article表明 ACL 逻辑与组相关联,而不是某些底层权限。
最佳答案
如果可能,您可以选择使用 localhost
作为前缀。那么您就不需要管理权限。
这种方法的缺点是无法从计算机外部访问服务器,这可能是您的用例。
此外,您可能需要使用文件夹或端口号来区分用户,而不是使用前缀。
以下代码片段无需管理员权限即可运行:
using (var hl = new HttpListener())
{
hl.Prefixes.Add("http://localhost:8008/myserver/");
hl.Start();
}
关于.net - 在不添加命名空间保留的情况下使用 System.Net.HttpListener 需要什么权限?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30736610/