【发布时间】:2019-10-21 01:02:36
【问题描述】:
我尝试在 IIS 中做一些我虽然很简单的事情,但我无法让它工作。
我用简单的 html+js 页面和 web api 后端创建了一个网页。 (这意味着我有一个带有一个 JavaScript 文件的普通旧 html 页面,它使用 AJAX 回调到同一服务器以从后端获取数据。后端是用 C# 编写的,带有 .NET Framework 4.7 和当前版本的 ASP.NET . 不是 MVC,不是 .NET Core,也不是 ASP.NET Core。)
现在我想只允许本地网络上的某些用户使用此网页,我希望这可以在 web.config 文件中以某种方式进行配置。 IIS 在域中的计算机上运行,因此我在其 web.config 中设置 Web 应用程序以使用 Windows 身份验证并在授权部分提供允许的用户列表(用户帐户与 Web 服务器位于同一域中)。我虽然这会阻止其他用户访问网络,但显然所有经过身份验证的用户都可以显示它。因此,Windows 身份验证似乎可以正常工作,但没有执行授权检查,并且允许所有用户。在这种 html+js+webapi 的场景下,web.config 中能轻松搞定吗?
目前,web.config 中的相关部分如下所示:
<system.web>
<compilation targetFramework="4.7.2" />
<httpRuntime targetFramework="4.7.2" />
<authentication mode="Windows" />
<authorization>
<deny users="?" />
<allow users="alloweduser1,alloweduser2" />
</authorization>
</system.web>
【问题讨论】:
-
在 IIS 端也必须配置 Windows 身份验证,并且必须在此处禁用匿名身份验证。所以不,仅仅改变你的 web.config 文件是不可能的。
-
“在 IIS 端配置”是什么意思?
-
@LexLi 是的,匿名在那里被禁用。让我添加一个屏幕截图。
标签: iis asp.net-web-api authorization windows-authentication