Ich habe den folgenden Code, der in .NET Core 2.2 kompiliert und funktioniert:
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 wird folgende Fehlermeldung angezeigt:
Fehler CS1061 'AuthenticationBuilder' enthält keine Definition für 'AddJwtBearer' und es konnte keine zugängliche Erweiterungsmethode 'AddJwtBearer' gefunden werden, die ein erstes Argument vom Typ 'AuthenticationBuilder' akzeptiert (fehlt Ihnen eine using-Direktive oder eine Assemblyreferenz?)
Wenn ich mir die MSFT-Dokumentation ansehe: https://docs.microsoft.com/en-us/dotnet/api/microsoft.extensions.dependencyinjection.jwtbearerextensions.addjwtbearer?view=aspnetcore-2.2
und versuchen Sie, auf Version 3.0 zu gelangen. Es scheint, dass dies die letzte Version ist, in der dies definiert ist. Wie migriere ich AddJwtBearer zu Core 3.0?
quelle
Antworten:
Fügen Sie, wie Mert Sayin sagt, das Paket Microsoft.AspNetCore.Authentication.JwtBearer hinzu , verwenden Sie jedoch Version 3.0.0 .
quelle
Sie müssen das Microsoft.AspNetCore.Authentication.JwtBearer- Paket in Ihr Projekt aufnehmen.
quelle
using Microsoft.AspNetCore.Authentication.JwtBearer;
oben benutzt?