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

标签 .net windows http.sys

我知道如果用户是计算机上 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/

相关文章:

html - 什么会导致 Chrome 针对本地主机上的服务器在缓存内容上给出 net::ERR_FAILED?

c# - .Net C# 设计 View 错误

javascript - 如何在另一台主机的浏览器中运行 karma 测试?

windows - 如何检查我在 Windows 上打开了哪些文件?

node.js - 我无法在 Heroku 上部署 Alexa 技能(使用 jovo 构建)

http - URL 中的 %09 导致 IIS(HTTP.SYS?)立即返回 HTTP 400

c# - 如果存在指向 C# 的免费 Excel "helper"类库的任何链接怎么办?

.net - 使用 MSBuild 压缩多个项目目录

c# - String.Empty 和 “” 和 null 有什么区别?

iis - HTTP.sys 如何将请求转发到工作进程