В ASP. Net Core 3.1 вы можете настроить OpenID Connect с помощью:
services.AddAuthentication().AddOpenIdConnect(openIdConnectOptions=>
{
// Configuration Code Here
});
В этом разделе вы можете подключиться к некоторым событиям OpenID Connect. Я подключаюсь к событию OnTokenValidated
следующим образом:
openIdConnectOptions.Events = new OpenIdConnectEvents
{
OnTokenValidated = context =>
{
if (context.Principal.Identity is ClaimsIdentity claimsIdentity)
{
claimsIdentity.Label = "MyCustomLabelHere";
}
return Task.CompletedTask;
}
}
Когда этот метод завершается, метка устанавливается на context.Principal.Identity.Label
. Но в более поздних методах значение больше не устанавливается.
Например, в моем методе HomeController.Index
значение User.Identities.First().Label
равно null
(хотя остальная часть ClaimsIdentity
настроена правильно.
Я делаю тот же процесс в своей .AddJwtBearer
лямбде (используя событие OnTokenValidated
для установки Label
), и он работает нормально.
Но по какой-то причине он не прилипает сторона OpenID Connect, если что-то есть.
Как я могу установить значение ClaimsIdentity.Label
при использовании OpenID Connect?