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



我知道,如果用户是计算机上BUILTINadministrators组的成员,那么您不需要添加名称空间保留来侦听System.Net.HttpListener(即HTTP.sys)的任何端口或URI。

但是,是否有可能在不将用户添加到BUILTINadministrators组的情况下为用户或组提供所需的权限?

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

本文建议ACL逻辑绑定到组,而不是一些底层权限。

如果可能,您可以选择使用localhost作为前缀。那么你就不需要管理权限了。

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

另外,您可能需要使用文件夹或端口号来区分用户,而不是使用前缀。

下面的代码片段可以在没有管理员权限的情况下工作:

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

最新更新