在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
只需以数组方式添加Claim
:
new Claim[]{ new Claim("role", "Admin"), new Claim("role", "SuperAdmin"), ... })