【问题标题】:Aspnet Core - web.config AuthorizationAspnet Core - web.config 授权
【发布时间】:2019-03-20 20:54:59
【问题描述】:

我正在尝试将“授权”元素添加到 web.config,就像它曾经在经典的 asp.net 中一样:

全局配置 - 应该“全局”限制访问:

<configuration>
  <system.web>
    <authentication mode="Windows" />
    <authorization>
      <allow roles="AD\some.user" />
      <deny users="*" />
    </authorization>
...

基于“位置”的配置:

<configuration>
   <location path="RelativePath" >
     <system.web>
      <authorization>
        <allow roles="AD\some.user" />
        <deny users="*" />
      </authorization>
     </system.web>
   </location>

两个版本似乎根本不适用于 IIS 中托管的 aspnet.core

这是什么工作:

“全球”:

<configuration>
  <system.webServer>
    <security>
      <authorization>
      <remove users="*" roles="" verbs="" />
      <add accessType="Allow" roles="AD\johannes.colmsee" />
  </authorization>
</configuration>

基于“位置”:

<configuration>
   <location path="RelativePath" >
     <system.webServer>
      <security>
        <authorization>
          <remove users="*" roles="" verbs="" />
          <add accessType="Allow" roles="AD\denis.kopic" />
        </authorization>
      </security>
     </system.webServer>
   </location>

这很好用。

现在我的问题:

aspnet 核心根本不支持“第一版”吗?还是我做错了什么?

【问题讨论】:

    标签: asp.net-core authorization


    【解决方案1】:

    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 Core 应用程序之前 -level。这可能可以满足您的需求,但这是一种非常粗略的方法,因为您最终可能必须为不同的路径、用户和授权级别定义许多这样的部分,并且 然后 与您最终在 ASP.NET Core 应用程序中更改的任何内容保持同步。由于 IIS 将其视为静态路径,因此如果您移动或重命名任何内容,最终可能会意外打开安全漏洞,因为 IIS 尚未配置为授权该新位置。

    长短,你应该把这一切和handle authorization via your ASP.NET Core app删除。 Windows Auth 仍受支持。

    【讨论】:

    • 如果我想保护 ApiController - 我当然会这样做 - 我想配置托管在 aspnetcore 中的 Angular 应用程序的授权 - 据我所知,这“不那么容易”
    • 您的 Angular 授权将通过 Angular Route Guards 在客户端进行处理。我并没有真正使用 Angular,所以你需要在那里进行自己的研究。
    猜你喜欢
    • 2018-06-15
    • 1970-01-01
    • 1970-01-01
    • 2010-10-13
    • 2011-04-21
    • 1970-01-01
    • 1970-01-01
    • 2021-02-09
    • 2011-09-28
    相关资源
    最近更新 更多