我以这种方式配置我的授权方法:
services.AddAuthorization(options =>
{
options.AddPolicy("Branch",
policy => policy.RequireClaim(ClaimTypes.Role, "Admin"));
});
这与我在控制器中的“分支”策略完美配合。我需要实现的是允许多个声明要求..即使只满足其中一个要求,也会进行身份验证。我通过添加 BranchManager Claim 来尝试这种方式。但这不起作用。
services.AddAuthorization(options =>
{
options.AddPolicy("Branch",
policy => policy.RequireClaim(ClaimTypes.Role, "Admin"));
options.AddPolicy("Branch",
policy => policy.RequireClaim(ClaimTypes.Role, "BranchManager"));
});
我还尝试连接 RequireClaim 语句。
services.AddAuthorization(options =>
{
options.AddPolicy("Branch",
policy => policy.RequireClaim(ClaimTypes.Role, "Admin")
.RequireClaim(ClaimTypes.Role, "BranchManager"));
});
而且它也不起作用,因为系统期望“Admin”和“BranchManager”声明都已声明。有没有一种优雅的方法来实现这一点:如果至少满足一个要求则授权?
红颜莎娜
相关分类