Come sostituire l'estensione AddJwtBearer in .NET Core 3.0


19

Ho il seguente codice che compila e funziona in .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
            };
        });

In .NET Core 3.0 sto ottenendo l'errore:

Errore CS1061 'AuthenticationBuilder' non contiene una definizione per 'AddJwtBearer' e non è stato trovato alcun metodo di estensione accessibile 'AddJwtBearer' che accetta un primo argomento di tipo 'AuthenticationBuilder' (ti manca una direttiva che utilizza o un riferimento di assembly?)

quando guardo la documentazione MSFT: https://docs.microsoft.com/en-us/dotnet/api/microsoft.extensions.dependencyinjection.jwtbearerextensions.addjwtbearer?view=aspnetcore-2.2

e prova ad arrivare alla versione 3.0, sembra che questa sia l'ultima versione in cui è definita. Come migrare AddJwtBearer su Core 3.0?


condividi il tuo file csproject
JeePakaJP,

Risposte:



6

È necessario includere il pacchetto Microsoft.AspNetCore.Authentication.JwtBearer nel progetto.


2
Hai usato using Microsoft.AspNetCore.Authentication.JwtBearer;in cima?
Mert Sayın,

sì, non penso che sia così semplice poiché la documentazione MSFT afferma chiaramente che questo metodo non esiste in 3.0. Penso che ci possa essere un modo per utilizzare Dependency Injection all'avvio per aggiungere JwtBearer ma non sono stato in grado di trovare su Internet.
shelbypereira,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.