2016-10-03 19 views
0

我們使用IdentityServer3作爲身份提供程序,我們的一個聲明是權限。將身份聲明值設置爲IdentityServer3中的數組

但是,當用戶只有一個權限,導致JWT包含名稱爲「權限」的屬性,但值是簡單的字符串,否則它是一個數組。我們如何將聲明值「權限」聲明爲數組?

這裏是剪斷我們如何要填寫要求:

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"));