在不添加命名空间保留的情况下使用System.Net.HttpListener需要哪些权限?

时间:2015-06-09 15:34:20

标签: .net windows http.sys

我知道如果用户是计算机上BUILTIN \ administrators组的成员,则无需添加namespace reservation来侦听任何带System.Net.HttpListener的端口或URI(即HTTP) .SYS)。

但是,如果不将该用户添加到BUILTIN \ administrators组,是否可以为用户或组授予所需权限?

在我的情况下,我正在构建一个应用程序,需要在许多不同且可配置的端口号上动态启动/停止许多HttpListener实例。不幸的是我无法添加通配符端口号。我希望避免添加大量的端口。

This article表明ACL逻辑与组绑定,而不是某些基础权限。

1 个答案:

答案 0 :(得分:0)

如果可能,您可以选择使用localhost作为前缀。那你就不需要行政权。

这种方法的缺点是无法从机器外部访问服务器,这可能是您的使用案例。

此外,您可能需要使用文件夹或端口号来代替使用前缀来区分用户。

以下代码段无需管理员权限即可使用:

using (var hl = new HttpListener())
{
    hl.Prefixes.Add("http://localhost:8008/myserver/");
    hl.Start();
}