.NET Core 3.0'da AddJwtBearer uzantısı nasıl değiştirilir


19

.NET Core 2.2'de derleyen ve çalışan aşağıdaki kod var:

  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'da hata alıyorum:

Hata CS1061 'AuthenticationBuilder', 'AddJwtBearer' için bir tanım içermiyor ve 'AuthenticationBuilder' türünde bir ilk argümanı kabul eden erişilebilir bir 'AddJwtBearer' uzantısı bulunamadı (yönerge veya montaj başvurusu kullanmıyor musunuz?)

MSFT belgelerine baktığımda: https://docs.microsoft.com/en-us/dotnet/api/microsoft.extensions.dependencyinjection.jwtbearerextensions.addjwtbearer?view=aspnetcore-2.2

ve 3.0 sürümüne ulaşmaya çalışın, bunun tanımlandığı son sürüm olduğu anlaşılıyor. AddJwtBearer'ı Core 3.0'a nasıl taşıyabilirim?


csproject dosyanızı paylaşın
JeePakaJP

Yanıtlar:



6

Projenize Microsoft.AspNetCore.Authentication.JwtBearer paketini eklemelisiniz .


2
using Microsoft.AspNetCore.Authentication.JwtBearer;Üstte kullandın mı?
Mert Sayın

Evet, MSFT belgeleri 3.0'da bu yöntemin bulunmadığını açıkça belirttiğinden, bu kadar basit olduğunu düşünmüyorum. Sanırım JwtBearer eklemek için başlangıçta Bağımlılık Enjeksiyonu kullanmak için bir yol olabilir ama internette bulamadım.
shelbypereira
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.