我创建了多个授权策略,每个策略中都有1个声明,并进行了角色检查,如下所示:
options.AddPolicy("SuperAdminPolicy", policy => policy.RequireClaim(ClaimTypes.Role, "SuperAdmin"));
一切正常。
但是,我现在要检查2种不同类型的 claim ,例如我想确保用户具有特定的角色声明(如上所述),但是我还想检查完全不同的声明(例如名字)的值。为了澄清,我想说些类似的话:“用户必须是角色'x',并且名字声明值必须为'bob'”。
我还不太清楚如何实现这一目标(而且我敢肯定,这可能很简单)。
有人可以指出我正确的方向吗?
谢谢。
最佳答案
我们实际上可以像这样链接RequireClaim。
services.AddAuthorization(option => {
option.AddPolicy("SuperAdmin policy",
policy => policy.RequireClaim(ClaimType.Role,"SuperAdmin")
.RequireClaim(ClaimType.Name,"Bob"));
});
关于asp.net - 具有多个声明的授权策略,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42875142/