首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在ASP.NET Identity中获取索赔价值的最大值?

如何在ASP.NET Identity中获取索赔价值的最大值?
EN

Stack Overflow用户
提问于 2021-11-21 08:18:48
回答 1查看 21关注 0票数 0

在我的例子中,用户可能有多个角色,例如,用户可能是管理员和SysAdmin。

在admin角色中,他具有claim ("Employee.Add", "Allow"),在SysAdmin角色中,他具有claim ("Employee.Add", "Deny")。在我的示例中,当尝试添加员工时,此用户必须经过授权。

如何使用策略来实现这一点?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-11-22 07:24:13

根据您的描述,我建议您尝试使用asp.net核心策略的RequireAssertion方法来满足您的需求。

更多细节,你可以参考下面的代码:

代码语言:javascript
复制
        services.AddAuthorization(options => {
            options.AddPolicy("TestAccess", policy => policy.RequireAssertion(context =>
            {
               // you could modify below codes due to your requirement
               var re= context.User.Claims.Where(x => x.Type == "Employee.Add").First();
                if (re != null)
                {
                    if (re.Value == "Allow")
                    {
                        return true;
                    }
                    else
                    {
                        return false;
                    }

                }
                else
                {
                    return false;
                }
            }));
        });

然后,在控制器中,您可以使用以下代码:

代码语言:javascript
复制
[Authorize(Policy = "TestAccess")]
public class VacationController : Controller

更多细节,你可以参考这个article

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70052905

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档