【问题标题】:set claim value as array in IdentityServer3在 IdentityServer3 中将声明值设置为数组
【发布时间】:2016-10-04 14:36:11
【问题描述】:

我们使用 IdentityServer3 作为身份提供者,我们的声明之一是权限。

但是当用户只有一个权限时,生成的 JWT 包含名称为“permission”但值是简单字符串的属性,否则它是一个数组。我们如何将声明值“权限”声明为数组?

以下是我们如何填写声明的狙击手:

foreach (var permission in permissions)
{
    claims.Add(new Claim(Scopes.SCOPE_PERMISSION, $"{permission.id}>>{permission.name}"));
}

【问题讨论】:

    标签: c# .net openid jwt identityserver3


    【解决方案1】:

    身份服务器自带值类型json,所以“权限”属性可以封装为

    claims.Add(
        new Claim(
            Scopes.SCOPE_PERMISSION,
            JsonConvert.SerializeObject(permissions.Select(s => $"{s.id}>>{s.name}")),
            "json"));
    

    【讨论】:

      猜你喜欢
      • 2022-01-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-09-02
      • 2011-03-21
      • 2021-12-27
      • 1970-01-01
      • 2022-10-30
      相关资源
      最近更新 更多