【问题标题】:Asp.Net Core authorization with a webconfig带有 webconfig 的 Asp.Net Core 授权
【发布时间】:2018-08-16 08:56:49
【问题描述】:

我们正在将 ASP.NET 后台迁移到 ASP.NET 核心,我坚持使用旧的授权方法。

有一个网站和后台。 这两个共享登录 cookie(SSO、单点登录)。

网站有 200 个用户,只有 3 个是管理员。 管理员是通过 webconfig 进行配置的,而我们只有少数是永远不会改变的。

实际上,由于 SSO(通过公共网站使用共享 cookie 登录),所有用户都有后台登录凭据

今天所有未经授权的人都使用后台 web.config 过滤:

 <location path="Default.aspx">
   <system.web>
     <authorization>
    <allow users="superadmin@backoffice.com" />
    <deny users="*"/>
  </authorization>
</system.web>

所以 IIS 会完成这项工作,而其他人会忽略授权 cookie。

任何线索如何注销不在列表中的用户,并在我们的网站上授予登录 cookie 以获得新的 ASP.NET 核心解决方案?据我了解,这种 webconfig 配置不再适用了......

【问题讨论】:

  • 选项太多了,docs.microsoft.com/en-us/aspnet/core/security/authorization/… 所以请进一步挖掘。
  • @LexLi 问题不在于授权本身,它已经实现了。但问题是用户已经通过 SSO 进行了身份验证,并且他们具有相同的角色、声明等。但无论如何我应该根据列表限制其中的一些。

标签: asp.net iis asp.net-core authorization


【解决方案1】:

是的,没错,web.configs 不再用于此目的。

你需要做什么:

  1. 使用IApplicationBuilderIServiceCollection的中间件和扩展方法注册cookie-authentication并配置cookie名称

  2. 使用configuration-builder 来构建您的配置 appsettings.json 文件和/或环境变量。有一个 webhost 正在构建的默认配置,它添加了 appsettings.jsonappsettings.{Environment}.jsonenvironment-variables 到您可以注入的配置 您的启动类(vs 模板包含该类)。在这里,您将存储有关允许哪些用户的信息,所有其他用户都不会

  3. 编写自定义策略以拒绝所有其他用户,如here 所述。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-09-25
    • 1970-01-01
    • 2020-06-10
    • 1970-01-01
    • 2022-11-25
    • 2019-02-04
    • 2018-04-03
    • 1970-01-01
    相关资源
    最近更新 更多