【问题标题】:Authorization Policy With Multiple Claims具有多重声明的授权策略
【发布时间】:2017-03-18 13:45:43
【问题描述】:

我创建了多个授权策略,每个都有 1 个声明,进行角色检查,如下所示:

options.AddPolicy("SuperAdminPolicy", policy => policy.RequireClaim(ClaimTypes.Role, "SuperAdmin"));

一切正常。

但是,我现在要检查 2 种不同类型的声明,例如我想确保用户具有特定的角色声明(如上所述),但我还想检查完全不同的声明的值(例如名字)。为了澄清,我想说“用户必须是角色'x'并且必须有一个名字声明值'bob'”。

我不太清楚如何实现这一点(而且我确信这可能很简单)。

有人能指点我正确的方向吗?

谢谢。

【问题讨论】:

    标签: asp.net asp.net-core authorization .net-core claims-based-identity


    【解决方案1】:

    我们实际上可以像这样链接 RequireClaim。

    services.AddAuthorization(option => {
    
                option.AddPolicy("SuperAdmin policy",
                policy =>  policy.RequireClaim(ClaimType.Role,"SuperAdmin")
                                  .RequireClaim(ClaimType.Name,"Bob"));
                                 });
    

    【讨论】:

      【解决方案2】:

      我对这篇文章做了一些额外的研究,因为我正在寻找非常相似的东西。我注意到除了 RequireClaim 之外还有一个 policy.RequireRole 和 policy.RequireUser。因此,策略可能需要声明、角色、用户或任何组合。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-12-27
        • 2018-12-28
        • 2022-01-17
        • 1970-01-01
        • 1970-01-01
        • 2020-06-17
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多