添加IProfileService实现会删除标准声明

时间:2018-06-18 15:35:20

标签: asp.net-identity identityserver4

我有一个使用ASP.NET Identity和Identity Server 4的ASP.NET Core项目,遵循他们的文档中描述的指南。

我们在一些标准声明中添加了一个自定义声明:

public static IEnumerable<IdentityResource> GetIdentityResources()
{
    yield return new IdentityResources.OpenId();
    yield return new IdentityResources.Email();
    yield return new IdentityResources.Profile();

    yield return new IdentityResource
    {
        // Our custom values...
    };
}

StartUp.ConfigureServices方法声明了我们的ProfileService

    services.AddIdentityServer()
        .AddStudyoSigningCredential()
        // Stuff removed for brievety
        .AddAspNetIdentity<ApplicationUser>()
        .AddProfileService<ProfileService>();

userinfo端点返回的声明外,一切正常。它只包含我们的自定义声明和通常的sub声明。我们的ProfileService被正确调用,context.RequestedClaimTypes属性仅包含我们的自定义声明。

如果我们注释掉AddProfileService行,则userinfo端点会正确返回subprefered_usernamenameemail等属性。

我是否正确地假设添加我们的ProfileService不应该干扰默认的已知声明?我们是否必须从服务中填充更多的声明?

0 个答案:

没有答案