system.web 中的授权与 web.config 中的 system.web 服务器之间的区别?

Difference between authorization in system.web and system.webServer in web.config?

我想知道这些片段之间有什么区别。不是关于 <authorization> 元素的具体内容,而是关于 system.websystem.webServer 元素。

<configuration>
   <system.webServer>
      <security>
         <authorization>
            <remove users="*" roles="" verbs="" />
            <add accessType="Allow" users="" roles="Administrators" />
         </authorization>
      </security>
   </system.webServer>
</configuration>

并且:

<system.web>
  <authorization>
    <deny users="*" />
  </authorization>
</system.web>

我目前研究后的理论是:

system.webServer 下应用的授权配置是否处于“较低”级别 (IIS),而在 system.web 下配置的授权由 ASP.NET 框架获取,并且由 运行 代码强制执行?一个会覆盖另一个吗?我可以在 IIS 10 上使用 system.web 下的授权元素吗?

system.web 是 IIS6 和旧版本的设置部分

system.webServer 是 IIS7 及更高版本的替换设置部分

更多信息您还可以参考:https://docs.microsoft.com/en-us/previous-versions/bb515251(v=vs.140)#the-systemwebserver-section

如果 auth 部分没有真正起作用,请验证设置中是否还有其他遗漏: 如果是授权的东西,你可以查看这个官方文档:System.Webserver authorization

但如果与身份验证相关,请检查另一个:System.Webserver authentication

system.web 和 system.web 服务器之间存在差异。他们不会互相覆盖。

<system.webServer> 元素指定 ApplicationHost.config 文件中 Internet 信息服务 (IIS) 7 的许多 site-level 和 application-level 配置设置的根元素,并包含定义 Web 服务器引擎和模块使用的设置的配置元素。

<system.web> 元素包含有关 ASP.NET 托管层如何管理 process-wide 行为的信息。 system.web 元素及其子 applicationPool 元素已添加到 .NET Framework 3.5 SP1 中。当您 运行 IIS 7.0 或更高版本处于集成模式时,此元素组合允许您配置 ASP.NET 如何管理线程以及当 ASP.NET 托管在 IIS 应用程序池中时它如何对请求进行排队。如果您 运行 IIS 7.0 或更高版本处于经典或 ISAPI 模式,这些设置将被忽略。

可以在system.web下配置授权,然后发布到iis