gpt4 book ai didi

c# - 如何将roleclaim包含到accesstoken中?

转载 作者:太空宇宙 更新时间:2023-11-03 12:04:42 26 4
gpt4 key购买 nike

我使用 identityserver4 和 asp.net 身份保护我的 API。身份数据库具有表角色和角色声明。对于我的安全模型,我需要具有她角色声明的角色。我包括角色以访问 token ,但我不明白如何包括角色声明。

//Example of API with roles
new ApiResource("api1", "My API")
{
UserClaims = new []{ "name", "role" }
}

最佳答案

我回答了here如何在访问 token 中包含角色。如果您想另外包含角色声明,则需要使用 RoleManager

public async Task GetProfileDataAsync(ProfileDataRequestContext context)
{
context.IssuedClaims.AddRange(context.Subject.Claims);

var user = await _userManager.GetUserAsync(context.Subject);

var roles = await _userManager.GetRolesAsync(user);

foreach (var role in roles)
{
var roleClaims = await RoleManager.GetClaimsAsync(role);

context.IssuedClaims.Add(new Claim(JwtClaimTypes.Role, role)); //Adds "role" claim
context.IssuedClaims.AddRange(roleClaims); //Adds other role claims
}
}

关于c# - 如何将roleclaim包含到accesstoken中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55649264/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com