AddJwtBearer не вызывается - PullRequest
       29

AddJwtBearer не вызывается

0 голосов
/ 28 октября 2019

Я пытаюсь подключить JWT к моему приложению ASP.NET Core Web API. Исходя из того, что я нашел в Интернете, это приемлемый способ сделать это:

// WSO2 sends the JWT in a different field than what is expected.
services.AddAuthentication().AddJwtBearer(configureOptions =>
{
    configureOptions.Events = new JwtBearerEvents()
    {
        OnMessageReceived = context =>
        {
            context.Token = context.HttpContext.Request.Headers["X-JWT-Assertion"];
            return Task.CompletedTask;
        }
    };
});

Я поместил это в мой метод ConfigureServices в Startup.cs. Он ведет себя следующим образом:

  • Я ставлю точку останова на первую строку (services.AddAuthentication().AddJwtBearer), и она срабатывает очень хорошо. (Во время запуска службы.)

  • Я ставлю точку останова на 3-й строке (configureOptions.Events = new JwtBearerEvents()), и она никогда не срабатывает.

  • Iпоставить точку останова на 5-й строке (OnMessageReceived = context =>), и она никогда не будет достигнута.

  • Я поставил точку останова на 7-й строке (context.Token = context.HttpContext.Request.Headers["X-JWT-Assertion"];), и она никогда не будет достигнута.

По какой-то причине я не запускаю лямбда-функцию.

Что мне нужно сделать, чтобы вызвать событие OnMessageReceived?

Примечание. Моя конечная цель - чтобы у свойства User на контроллере были утверждения в моем JWT.

...