在非管理员帐户下运行自托管的OWIN网站

时间:2018-08-22 04:26:54

标签: c# nunit owin

在非管理员帐户“域\测试”下在命令行上运行以下c#代码时,出现错误“ system.net.httplistenerexception:访问被拒绝”,但在管理员提升的帐户“域\测试”(例如,在Windows命令行上以管理员身份运行):

WebApp.Start(new StartOptions(“ http:\ localhost”){端口= 5000});

我一直在尝试使用Running self-hosted OWIN Web API under non-admin account中建议的其他选项,但是没有一个选项适合我。

可以帮忙吗?

2 个答案:

答案 0 :(得分:0)

默认情况下,非管理员帐户无法创建URL保留。要允许用户绑定到给定的URL,您需要代表非管理用户add the URL reservation

例如,要允许DECLARE @No INT = 23 DECLARE @Multiple INT = 5 绑定到端口8080上的任何地址(但仅当其后跟CORP\NonAdmin时),可以在提升的环境中运行以下命令:

/MyUri

如果要查看已经存在的预订,可以运行以下命令:

netsh http add urlacl url=http://+:8080/MyUri user=CORP\NonAdmin

编辑:

我看到您仍然有问题。请提供以下命令的输出:

netsh http show urlacl

输出中应包含类似于以下内容的条目:

netsh http show urlacl

编辑:

我看到您已经发布了Reserved URL : http://+:5000/ User: Domain\test Listen: Yes Delegate: No SDDL: D:(A;;GX;;;S-1-5-##-##########-#########-##########-#######) 命令的输出。

第一个条目的SDDL在我看来不正确。另外,由于存在两个具有不同SDDL值的重叠URL保留,因此Windows可能会混淆这两个。

您可能要删除两个URL保留,然后将它们替换为一个条目。例如:

要删除重叠的条目,请执行以下操作:

netsh

现在添加一个条目:

netsh http delete urlacl url=http://+:5000/
netsh http delete urlacl url=http://localhost:5000/

关闭所有窗口(也许重新启动),然后尝试再次运行控制台(自托管Web)应用程序。

如果这不起作用,请告诉我,我会尽力帮助。

编辑:

目标是创建一个看起来像这样的URL预留:

netsh http add urlacl url=http://+:5000/ user=Domain\test

答案 1 :(得分:0)

这是从我的计算机输出的:

保留的URL:http://+:5000/     用户:域\测试         听:是的         代表:否         SDDL:D:(A ;; GX ;;; WD)

保留的URL:http://localhost:5000/     用户:域\测试         听:是的         代表:否         SDDL:D:(A ;; GX ;;; S-1-5-21-839522115-1972579041-2146381891-8170)