Cómo reemplazar la extensión AddJwtBearer en .NET Core 3.0


19

Tengo el siguiente código que compila y funciona en .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
            };
        });

En .NET Core 3.0 obtengo el error:

El error CS1061 'AuthenticationBuilder' no contiene una definición para 'AddJwtBearer' y no se puede encontrar ningún método de extensión accesible 'AddJwtBearer' que acepte un primer argumento del tipo 'AuthenticationBuilder' (¿falta una directiva de uso o una referencia de ensamblado?)

cuando miro la documentación de MSFT: https://docs.microsoft.com/en-us/dotnet/api/microsoft.extensions.dependencyinjection.jwtbearerextensions.addjwtbearer?view=aspnetcore-2.2

e intenta llegar a la versión 3.0, parece que esta es la última versión donde está definida. ¿Cómo migro AddJwtBearer a Core 3.0?


comparte tu archivo csproject
JeePakaJP

Respuestas:



6

Debe incluir el paquete Microsoft.AspNetCore.Authentication.JwtBearer en su proyecto.


2
¿Usaste using Microsoft.AspNetCore.Authentication.JwtBearer;en la parte superior?
Mert Sayın

sí, no creo que sea tan simple ya que la documentación de MSFT establece claramente que este método no existe en 3.0. Creo que puede haber alguna forma de usar la Inyección de dependencia en el inicio para agregar JwtBearer, pero no he podido encontrarla en Internet.
shelbypereira
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.