所以我一直在学习和使用身份服务器4一个月,我想在我的 access_token 中添加一些自定义声明。我实施了自定义 IProfileService 并添加到我的 startup.cs 中,它有点有效,让我解释一下:
public class MyProfileService : IProfileService
{
public Task GetProfileDataAsync(ProfileDataRequestContext context)
{
var claims = new List<Claim>();
claims.Add(new Claim("FullName", "Joe"));
claims.Add(new Claim("FullName", "Tester"));
context.IssuedClaims = claims;
return Task.FromResult(0);
}
public Task IsActiveAsync(IsActiveContext context)
{
context.IsActive = true;
return Task.FromResult(0);
}
}
这是 IProfileService 的自定义测试实现。然后我将它添加到我的 startup.cs 中:
services.AddTransient<IProfileService, MyProfileService>();
所以在我的 access_token 中,我得到了自定义声明,那部分很棒,但我想为我的用户获取角色,我该如何让用户获得正试图注册从我的数据库中获取他的角色,这是我正在努力的部分。任何建议都会很棒,我可以从ASP.net身份为用户和角色注入DbContexts但是我如何才能获得正在注册的实际用户,这样我才能从数据库中获得我想要的声明。