Изменения ClaimsIdentity.Label в OpenIdConnectOptions.Events.OnTokenValidated потеряны - PullRequest
0 голосов
/ 29 мая 2020

В 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?

...