授权不适用于 IIS 中的 Windows 身份验证

Authorization doesn't work with Windows Authentication in IIS

我试图在 IIS 中做一些我认为很简单的事情,但我无法让它工作。

我创建了一个带有简单 html+js 页面和 Web api 后端的网页。 (这意味着我有一个普通的旧 html 页面和一个 JavaScript 文件,它使用 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>

尝试:

<system.web>
    <compilation targetFramework="4.7.2" />
    <httpRuntime targetFramework="4.7.2" />
    <authorization>
      <allow users="domain\alloweduser1,domain\alloweduser2" />
      <deny users="*" />
    </authorization>
  </system.web>