วิธีการเปลี่ยนนามสกุล AddJwtBearer ใน. NET Core 3.0


19

ฉันมีรหัสต่อไปนี้ซึ่งรวบรวมและทำงานใน. 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 ได้อย่างไร


แชร์ไฟล์ csproject ของคุณ
JeePakaJP

คำตอบ:



6

คุณต้องรวมMicrosoft.AspNetCore.Authentication.JwtBearerแพ็คเกจในโครงการของคุณ


2
คุณใช้using Microsoft.AspNetCore.Authentication.JwtBearer;อยู่ด้านบนหรือไม่?
Mert Sayın

ใช่ฉันไม่คิดว่ามันง่ายนักเนื่องจากเอกสาร MSFT ระบุอย่างชัดเจนว่าวิธีนี้ไม่มีอยู่ใน 3.0 ฉันคิดว่าอาจมีวิธีใช้ Dependency Injection ในการเริ่มต้นเพื่อเพิ่ม JwtBearer แต่ฉันไม่สามารถค้นหาบนอินเทอร์เน็ตได้
shelbypereira
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.