Identity Server 4自定义用户声明

时间:2017-11-02 02:27:17

标签: identityserver4 claims

所以我一直在学习和使用身份服务器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但是我如何才能获得正在注册的实际用户,这样我才能从数据库中获得我想要的声明。

0 个答案:

没有答案