我试图在web.config中添加“授权”元素,就像它曾经在经典的asp.net中工作一样:
全局配置 - 应限制“全局”访问:
<结构> <&的System.Web GT; …
ASP.NET Core不支持也不使用web.config。发布的web.config仅用于IIS托管,因为IIS需要这样做。如果您碰巧发布到其他Web服务器,则可以完全丢弃web.config。
从查看已发布的web.config的内容可以看出,它非常简单。几乎唯一存在的是AspNetCoreHosting模块配置,这当然是在IIS中托管ASP.NET Core所必需的。
现在,至于为什么第二个版本实际上 没有 工作,那是因为它放在里面 system.webServer ,它直接用于配置IIS,因此IIS在将任何内容传递给您的ASP.NET核心应用程序之前,都会在非常高的级别进行授权。那 可以 满足您的需求,但这是一种非常粗暴的方法,因为您可能最终会为不同的路径,用户和授权级别定义许多此类部分,以及 然后 保持与您最终在ASP.NET Core应用程序中更改的任何内容保持同步。因为IIS将此视为静态路径,所以如果移动或重命名任何内容,最终可能会在安全性中意外打开一个漏洞,因为IIS尚未配置为授权该新位置。
system.webServer
长短,你应该删除所有这些和 通过ASP.NET Core应用程序处理授权 。 Windows Auth 仍然受支持。