C#.net核心JWT令牌获取值

时间:2018-06-19 06:21:57

标签: c# .net-core jwt

我有一些来自Claim的{​​{1}},如下所示:

JwtSecurityToken

我需要获得价值{ "profile":{ "roles":{ "Rolename":{ "Type":27 } } } } (现在它是27)

Rolename它命名角色 - 它可以是不同的(并且可以有多个角色)

对我而言,它为角色命名并获得Type

的价值

我是怎么做到的:

Type

它运作良好,但我不知道如何取得角色名称以及当我有更多角色时如何成为

2 个答案:

答案 0 :(得分:1)

If there is always one role you can do this:

JObject o = JObject.Parse(profile);
var role = ((JObject)o["roles"]).Properties().First();

string roleName = role.Name;

int cardType = (int)role.Value["Type"];

if there can be several roles you can loop through an array of JProperty like this:

var roles = ((JObject)o["roles"]).Properties();
foreach (var role in roles)
{
    string roleName = role.Name;

    int cardType = (int)role.Value["Type"];
}

答案 1 :(得分:0)

复数形式的角色应该是一个数组。 然后,您可以按照循环的方式获取该数组中的所有值。 例如:

var roleTypes = new List<string>();
foreach (var role in profile.roles)
{
    //populate a list
}
相关问题