Mat*_*uni 3 c# openid asp.net-core identityserver4
我创建了一个 IdentityServer4 应用程序,如果我在该应用程序中登录,用户声称一切都很好。如果我从另一个客户端应用程序 (MVC) 登录,则 UserInfo 端点不会返回相同的声明。
IdentityServer 配置了 ASP.NET Identity,因此 UserProfile 已经配置为返回所有 UserClaims,就像我创建的一样。
我不明白为什么它没有显示在同意视图中或者它没有包含在 UserInfo 端点结果中
小智 6
请检查以下几点是否可以解决您的问题
1.) 您的身份资源和 API 资源应具有所需的 UserClaims。
2.) 检查是否有一些自定义逻辑来为您的配置文件服务中的 userinfo 端点发出请求的声明。
public class ProfileService : IProfileService
{
public async Task GetProfileDataAsync(ProfileDataRequestContext context)
{
if (context.Caller == IdentityServerConstants.ProfileDataCallers.UserInfoEndpoint)
{
//custom logic to add requested claims
context.AddRequestedClaims(claims);
}
}
}
Run Code Online (Sandbox Code Playgroud)
3.) 尝试在您的 MVC 客户端 AddOpenIdConnect 配置中设置属性“GetClaimsFromUserInfoEndpoint=true”。
| 归档时间: |
|
| 查看次数: |
3176 次 |
| 最近记录: |