授权不';无法在IIS中使用Windows身份验证

授权不';无法在IIS中使用Windows身份验证,iis,asp.net-web-api,authorization,windows-authentication,Iis,Asp.net Web Api,Authorization,Windows Authentication,我试着在IIS中做一些我认为很简单的事情,但我无法让它工作 我用简单的html+js页面和WebAPI后端创建了一个网页。(这意味着我有一个简单的旧html页面和一个JavaScript文件,它使用AJAX回调同一服务器从后端获取数据。后端是用C#编写的,带有.NET Framework 4.7和当前版本的ASP.NET。它不是MVC,不是.NET Core,也不是ASP.NET Core。) 现在我想只允许本地网络上的一些用户使用这个网页,我希望可以在web.config文件中进行配置。IIS

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

我用简单的html+js页面和WebAPI后端创建了一个网页。(这意味着我有一个简单的旧html页面和一个JavaScript文件,它使用AJAX回调同一服务器从后端获取数据。后端是用C#编写的,带有.NET Framework 4.7和当前版本的ASP.NET。它不是MVC,不是.NET Core,也不是ASP.NET Core。)

现在我想只允许本地网络上的一些用户使用这个网页,我希望可以在web.config文件中进行配置。IIS在域中的计算机上运行,因此我在其web.config中设置web应用程序以使用Windows身份验证,并在授权部分提供允许的用户列表(用户帐户与web服务器位于同一域中)。我认为这会阻止其他用户访问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>


Windows身份验证也必须在IIS端配置,并且必须在IIS端禁用匿名身份验证。因此,不可能只更改web.config文件。您所说的“在IIS端配置”是什么意思?@LexLi yes anonymous在那里被禁用。让我添加一个屏幕截图。所以首先允许用户使用域,然后拒绝*。