gpt4 book ai didi

c# - 地址访问拒绝异常 : resolve it without netsh?

转载 作者:太空狗 更新时间:2023-10-30 00:44:31 25 4
gpt4 key购买 nike

我遇到了异常AddressAccessDeniedException,因为我的processus没有权限注册这个URL。我首先以管理员身份运行我的程序:好的,它成功了。

但我现在想分发我的应用程序,我希望每个用户都能够运行它而无需成为管理员。

有没有办法自动授予用户访问权限?

我看到了命令:

netsh http add urlacl url=http://+:8000/ user=DOMAIN\UserName

我应该使用它吗?如果是,如何?

我想做的是在没有管理员身份的情况下授予访问权限...这样说,这似乎很愚蠢,但可能...

最佳答案

那是不可能的。 Windows 使用内核驱动程序来处理 HTTP 请求,并通过 ACL(访问控制列表)保护此驱动程序上的打开监听器。如果您想打开监听器以便您的应用程序可以监听来自其他机器的请求,您必须以管理员身份运行它以通过 ACL,或者您必须具有权限(=您必须在 ACL 中)。您还可以关闭 UAC(用户访问控制)以绕过这些检查。

netsh 是一个允许您为 HTTP.sys(内核驱动程序)设置 ACL 的工具。您可以授予任何用户在选定端口上监听的权限,但显然您必须是管理员才能授予这些权限,或者您必须有权委派已配置权限的权利,否则此安全性的全部意义将不复存在。

netsh 调用添加到您的安装包中,并要求以管理员身份完成安装(这对于许多应用程序来说很常见)。另请注意,netsh 仅适用于 Windows Vista、Windows 7、Windows Server 2008 和 Windows Server 2008 R2。对于 Windows 2003 和 Windows XP(至少需要 SP2),您需要另一个名为 httpcfg 的工具,它不是操作系统安装的一部分(必须单独安装)。

关于c# - 地址访问拒绝异常 : resolve it without netsh?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7672196/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com