在Identity Server 4中,我为用户创建角色声明“ Admin”:
userMgr.AddClaimsAsync(user,
new Claim[]{ new Claim("role", "Admin") })
在客户端应用程序中,我映射了此角色,并且仅对一个角色有效:
options.Scope.Add(RSIdentityServerConstants.Roles);
options.ClaimActions.MapJsonKey("role", "role", "role");
options.TokenValidationParameters.NameClaimType = "name";
options.TokenValidationParameters.RoleClaimType = "role";
[Authorize(Roles = "Admin")] => Works fine
public IActionResult Index()
{
return View();
}
但是我需要映射角色列表,但是我不知道如何创建声明并映射到ASP Net Core MVC应用程序?
[Authorize(Roles = "Admin, SuperAdmin, Others")] => How to do ??
public IActionResult Index()
{
return View();
}
userMgr.AddClaimsAsync(user,
new Claim[]{ new Claim("role", "Admin, SuperAdmin, Others") }) => this doesn't work
答案 0 :(得分:1)
只需以数组方式添加Claim
:
new Claim[]{ new Claim("role", "Admin"), new Claim("role", "SuperAdmin"), ... })