Самый простой способ - сохранить токен доступа в ie повара после аутентификации. Измените код на клиенте следующим образом:
app.UseOpenIdConnectAuthentication(new OpenIdConnectAuthenticationOptions
{
ResponseType = "id_token token",
Scope = "openid profile api1",
Notifications = new OpenIdConnectAuthenticationNotifications
{
SecurityTokenValidated = n =>
{
n.AuthenticationTicket.Identity.AddClaim(new Claim("access_token", n.ProtocolMessage.AccessToken));
return Task.FromResult(0);
},
}
});
И затем вы можете получить access_token из требований текущего пользователя, например:
var accessToken = user.FindFirst("access_token").Value;
Подробности я объяснил здесь: https://nahidfa.com/posts/identityserver4-and-asp-.net-mvc/#call -an-authorized-api-endpoint-using-access-token
Изменить:
Чтобы установить Identity.Name, добавьте этот код:
app.UseOpenIdConnectAuthentication(new OpenIdConnectAuthenticationOptions
{
...
TokenValidationParameters = new Microsoft.IdentityModel.Tokens.TokenValidationParameters
{
NameClaimType = "name"
}, // This is to set Identity.Name
});