【发布时间】:2020-08-05 14:20:56
【问题描述】:
我很难找到有关如何从身份服务器向我的客户端应用程序发送附加声明的可靠信息。
目前,我正在使用以下内容获取本地声明(我在 ProcessLoginCallbackForOidc 中捕获)并添加到身份验证期间返回的声明中。
这是最好的方法吗?
public class ProfileService : IProfileService
{
public Task GetProfileDataAsync(ProfileDataRequestContext context)
{
//var sub = context.Subject.GetSubjectId();
var claims = context.Subject.Claims.ToList();
if (claims.Count > 0)
{
var emailClaim = claims.FirstOrDefault(x => x.Type == "email");
if (emailClaim == null)
{
var emailAddressClaim = context.Subject.Claims.FirstOrDefault(x => x.Type == "emails");
if (emailAddressClaim != null)
{
claims.Add(new Claim("email", emailAddressClaim.Value));
}
}
}
// Set returned claims (System.Security.Claims.Claim) by setting context.IssuedClaims
context.IssuedClaims = claims;
return Task.CompletedTask;
}
public Task IsActiveAsync(IsActiveContext context)
{
context.IsActive = true;
return Task.CompletedTask;
}
}
【问题讨论】:
标签: oauth identityserver4