Mam następujący kod, który kompiluje i działa w .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
};
});
W .NET Core 3.0 pojawia się błąd:
Błąd CS1061 „AuthenticationBuilder” nie zawiera definicji „AddJwtBearer” i nie można znaleźć dostępnej metody rozszerzenia „AddJwtBearer” akceptującej pierwszy argument typu „AuthenticationBuilder” (brakuje Ci dyrektywy lub odniesienia do zestawu?)
kiedy patrzę na dokumentację MSFT: https://docs.microsoft.com/en-us/dotnet/api/microsoft.extensions.dependencyinjection.jwtbearerextensions.addjwtbearer?view=aspnetcore-2.2
i spróbuj dostać się do wersji 3.0. Wygląda na to, że jest to ostatnia wersja, w której została zdefiniowana. Jak przeprowadzić migrację AddJwtBearer do Core 3.0?
c#
asp.net-core
.net-core
asp.net-core-2.0
.net-core-3.0
shelbypereira
źródło
źródło
Odpowiedzi:
Jak mówi Mert Sayin, dołącz pakiet Microsoft.AspNetCore.Authentication.JwtBearer , ale użyj wersji 3.0.0 .
źródło
Musisz dołączyć pakiet Microsoft.AspNetCore.Authentication.JwtBearer do swojego projektu.
źródło
using Microsoft.AspNetCore.Authentication.JwtBearer;
na górze?