【问题标题】:httpListener in local network without admin rights本地网络中的 httpListener 没有管理员权限
【发布时间】:2017-12-08 09:49:58
【问题描述】:

我的任务是为网络内的本地计算机创建一个侦听器。这台计算机从 Web 应用程序获取 POST 并打印一些内容。 到目前为止,我所做的是在特定端口中创建一个 httpListener,并在收到 POST 时将内容发送到打印机。这很好,但只有当用户具有管理员权限时,因为“netsh http...”需要管理员权限才能执行。 有没有办法以某种方式绕过这个限制,因为这台电脑是一台简单的电脑,它没有管理员权限? 该应用程序是用 VB.NET 编写的,将在 WindowsServer 网络中的 windows10 PC 中运行。

【问题讨论】:

    标签: vb.net httplistener netsh


    【解决方案1】:
    netsh http add urlacl url="http://127.0.0.1:1234/" user=DOMAIN\USER
    

    根据我的阅读,反斜杠很重要(在端口号后面)。您还可以将127.0.0.1 替换为+*(作为通配符)。奇怪的是,我让 localhost 在两个不同的端口上监听,一旦我添加了一个,两个端口都被允许监听。似乎也可以为user 参数指定一个组。 (在大多数示例中,他们演示了 user=Everyone,如果您能提供帮助,我绝对不会建议它。将其锁定到单个帐户,就像服务帐户一样。)

    就我而言,我使用的是 Grapevine。它包含HttpListener,但给你一个例子并不太相关。 (我强烈建议您检查一下,特别是如果您正在创建一个 API。它已经更新了多年,开发人员仍然对反馈做出响应,并且会为您节省大量工作。)请注意镜像在netsh 命令中用于HttpListener 的前缀字符串。 (通过通配符监听肯定和 localhost 不同,反之亦然。)

    https://serverfault.com/questions/273875/can-we-use-wildcards-with-netsh-http-add-urlacl-in-windows-7-2008r2

    https://github.com/sukona/Grapevine

    https://msdn.microsoft.com/en-us/library/windows/desktop/cc307223(v=vs.85).aspx

    我会查看 MSDN 链接以了解其他参数。看来您可以进一步锁定 ACL 命令。

    (我也不知道你为什么被否决。你的问题很好,我发现它是最好的结果之一,因为我有同样的问题。)

    【讨论】:

    • 以上没有管理员失败
    猜你喜欢
    • 2011-06-07
    • 1970-01-01
    • 2012-03-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-02
    • 1970-01-01
    • 1970-01-01
    • 2010-10-26
    相关资源
    最近更新 更多