这个问题已经在这里有一个答案:
- HttpListener拒绝访问 10个回答
我已经写了一个使用C#应用程序HttpListener
监听-obviously 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();
}