У мене є такий код, який збирається і працює в .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?