Joh*_*hnM 4 c# wcf http user-permissions
我遇到了异常,AddressAccessDeniedException因为我的processus无权注册URL.我首先以管理员身份运行我的程序:好吧,它有效.
但我现在想要分发我的应用程序,我希望每个用户都能够运行它而无需成为管理员.
有没有办法自动授予用户访问权限?
我看到了命令:
netsh http add urlacl url=http://+:8000/ user=DOMAIN\UserName
Run Code Online (Sandbox Code Playgroud)
我应该用吗?如果有,怎么样?
我想做的就是在没有管理员的情况下授予访问权限...这样说,它似乎很愚蠢,但可能......
这是不可能的.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不属于操作系统安装的工具(必须单独安装).