带有webconfig的Asp.Net核心授权

带有webconfig的Asp.Net核心授权,asp.net,iis,asp.net-core,authorization,Asp.net,Iis,Asp.net Core,Authorization,我们正在将我们的ASP.NET后台迁移到ASP.NET核心,我坚持使用旧的授权方法 有一个网站和后台办公室。 这两个共享登录cookie(SSO、单点登录) 该网站有200名用户,只有3名是管理员。 管理员是通过webconfig配置的,而我们只有很少的管理员从未更改过 实际上,由于SSO(通过公共网站使用共享cookie登录),所有用户都有登录后台的凭据 现在,所有未经授权的人员都会使用backoffice web.config进行筛选: <location path="Default

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

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

该网站有200名用户,只有3名是管理员。 管理员是通过webconfig配置的,而我们只有很少的管理员从未更改过

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

现在,所有未经授权的人员都会使用backoffice web.config进行筛选:

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

因此,IIS将执行此任务,其他人将忽略授权cookie


关于如何注销不在列表中且在我们的网站上拥有新ASP.NET核心解决方案的登录cookie的用户,有何线索?据我所知,这种webconfig配置已不再适用……

是的,这是正确的,web.configs不再用于此目的

您需要做的是:

  • 使用中间件和扩展方法注册
    iaapplicationbuilder
    IServiceCollection
    并配置cookie名称

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

  • 编写自定义策略以拒绝所有其他用户,如所述

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