2016-10-03 6 views
0

私たちはアイデンティティプロバイダとしてIdentityServer3を使用しており、私たちのクレームの1つはパーミッションです。IdentityServer3の配列としてクレーム値を設定

しかし、ユーザーが1つのアクセス権しか持たない場合、結果のJWTには「permission」という名前のプロパティが含まれますが、値は単純な文字列です。それ以外の場合は配列です。クレーム値「許可」を配列として宣言するにはどうすればよいですか?

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

答えて

1

アイデンティティ・サーバーは、値型jsonが付属していますので、「許可が」プロパティが

claims.Add(
    new Claim(
     Scopes.SCOPE_PERMISSION, 
     JsonConvert.SerializeObject(permissions.Select(s => $"{s.id}>>{s.name}")), 
     "json")); 
としてカプセル化することができます:ここでは

は、私たちが主張を満たしているかsnipperです

関連する問題