gpt4 book ai didi

c# - 非管理员的 HttpListenerException "access denied"

转载 作者:IT王子 更新时间:2023-10-29 04:53:53 27 4
gpt4 key购买 nike

<分区>

我编写了一个 C# 应用程序,它使用 HttpListener 来监听 HTTP 请求 - 显然!我使用的命名空间前缀也是使用 netsh 为当前用户注册的(正如 SO 上的每个人所建议的那样)。

问题是尽管使用了 netsh,我的应用程序仍然会为非管理员用户抛出“访问被拒绝”异常。操作系统为 Windows 7。

更新:当我用非管理员用户运行时,我的应用程序似乎没有执行 netsh 命令。我的代码有什么问题吗?没有抛出异常。

    AddAddress("http://localhost:8400/", Environment.UserDomainName, Environment.UserName);

HttpListener _listener = new HttpListener();
_listener.Prefixes.Add("http://localhost:8400/");
_listener.Start();

...

/** method stolen from an SO thread. sorry can't remember the author **/
static void AddAddress(string address, string domain, string user)
{
string args = string.Format(@"http add urlacl url={0}", address) + " user=\"" + domain + "\\" + user + "\"";

ProcessStartInfo psi = new ProcessStartInfo("netsh", args);
psi.Verb = "runas";
psi.CreateNoWindow = true;
psi.WindowStyle = ProcessWindowStyle.Hidden;
psi.UseShellExecute = true;

Process.Start(psi).WaitForExit();
}

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