如何解决Asp.net Core中的策略和“授权中的角色”之间的条件或条件
如何在AuthorizeAttribute中的策略和角色之间应用或限定条件?我需要向属于某些角色或满足特定AuthorizationPolicy的用户公开一个Action。我正试图达到这样的目的
[Authorize(Policy = AuthorPolicyRequirementHandler.FooPolicy,Roles = RoleName.FooRoles)]
[HttpGet]
public IActionResult FOO(long id)
{
return Ok();
}
但这适用于And条件。有什么方法可以申请或条件吗?
解决方法
我对此进行了测试,可以验证and条件。您的代码指出FooRoles应该可以访问此特定端点。
一种简单的方法是将所需角色添加到策略中,并仅在authorize属性中使用策略。
如果您将FooPolicy用于其他端点,请为此端点创建一个新策略。
const obj = {
"1": {
id: "1",children: ["1-1","1-2"]
},"1-1": {
id: "1-1",children: ["1-1-1","1-1-2"]
},"1-2": {
id: "1-2",children: []
},"1-1-1": {
id: "1-1-1","1-1-2": {
id: "1-1-2",children: []
}
};
const obj2 = {
"2": {
id: "2",children: ["2-1","2-2","2-3"]
},"2-1": {
id: "2-1",children: ["2-1-1","2-1-2"]
},"2-2": {
id: "2-2","2-3": {
id: "2-3","2-1-1": {
id: "2-1-1",children: ["2-1-1-1","2-1-1-2"]
},"2-1-2": {
id: "2-1-2",children: ["2-1-2-1"]
},"2-1-1-1": {
id: "2-1-1-1","2-1-1-2": {
id: "2-1-1-2","2-1-2-1": {
id: "2-1-2-1",};
/* DFS */
function sort(id) {
if (!sorted.includes(id)) {
sorted.push(id);
obj[id].children.forEach(sub => {
sort(sub);
});
}
}
/* MAIN */
let sorted = [];
for (let [id,value] of Object.entries(obj)) {
sort(id);
}
console.log(sorted.flat());
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。