Як замінити розширення AddJwtBearer у .NET Core 3.0


19

У мене є такий код, який збирається і працює в .NET Core 2.2:

  byte[] key = Encoding.ASCII.GetBytes(Constants.JWT_SECRET); 
        services.AddAuthentication(x =>
        {
            x.DefaultAuthenticateScheme = JwtBearerDefaults.AuthenticationScheme;
            x.DefaultChallengeScheme = JwtBearerDefaults.AuthenticationScheme;
        })
        .AddJwtBearer(x =>
        {
            x.RequireHttpsMetadata = false;
            x.SaveToken = true;
            x.TokenValidationParameters = new TokenValidationParameters
            {
                ValidateIssuerSigningKey = true,
                IssuerSigningKey = new SymmetricSecurityKey(key),
                ValidateIssuer = false,
                ValidateAudience = false
            };
        });

У .NET Core 3.0 я отримую помилку:

Помилка CS1061 "AuthenticationBuilder" не містить визначення для "AddJwtBearer", і не може бути знайдено доступного методу розширення "AddJwtBearer", який приймає перший аргумент типу "AuthenticationBuilder" (ви не використовуєте директиву чи посилання на збірку?)

коли я переглядаю документацію MSFT: https://docs.microsoft.com/en-us/dotnet/api/microsoft.extensions.dependencyinjection.jwtbearerextensions.addjwtbearer?view=aspnetcore-2.2

і спробуйте перейти до версії 3.0, схоже, це остання версія, де це визначено. Як перенести AddJwtBearer до Core 3.0?


поділіться своїм файлом csproject
JeePakaJP

Відповіді:



6

Ви повинні включити пакет Microsoft.AspNetCore.Authentication.JwtBearer до свого проекту.


2
Ви використовували using Microsoft.AspNetCore.Authentication.JwtBearer;вгорі?
Mert Sayın

так, я це думаю, я не думаю, що це так просто, оскільки в документації MSFT чітко зазначено, що цей метод не існує в 3.0. Я думаю, може бути якийсь спосіб використовувати Dependency Injection при запуску, щоб додати JwtBearer, але мені не вдалося знайти в Інтернеті.
shelbypereira
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.