Identity Server 4如何将角色列表映射到MVC应用程序

时间:2019-04-12 13:48:06

标签: asp.net-mvc asp.net-core identityserver4

在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

1 个答案:

答案 0 :(得分:1)

只需以数组方式添加Claim

new Claim[]{ new Claim("role", "Admin"), new Claim("role", "SuperAdmin"), ...  })