Cách thay thế tiện ích mở rộng AddJwtBearer trong .NET Core 3.0


19

Tôi có đoạn mã sau sẽ biên dịch và hoạt động trong .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
            };
        });

Trong .NET Core 3.0 tôi gặp lỗi:

Lỗi CS1061 'Xác thựcBuilder' không chứa định nghĩa cho 'AddJwtBearer' và không có phương thức tiện ích mở rộng có thể truy cập 'AddJwtBearer' chấp nhận đối số đầu tiên của loại 'Xác thựcBuilder' có thể được tìm thấy (bạn có đang sử dụng tham chiếu lắp ráp không?)

khi tôi xem tài liệu MSFT: https://docs.microsoft.com/en-us/dotnet/api/microsoft.extensions.dependencyinjection.jwtbearerextensions.addjwtbearer?view=aspnetcore-2.2

và thử chuyển sang phiên bản 3.0, có vẻ như đây là phiên bản cuối cùng được xác định. Làm cách nào để tôi di chuyển AddJwtBearer sang Core 3.0?


chia sẻ tệp csproject của bạn
JeePakaJP

Câu trả lời:



6

Bạn phải bao gồm gói Microsoft.AspNetCore.Authentication.JwtBearer cho dự án của bạn.


2
Bạn đã sử dụng using Microsoft.AspNetCore.Authentication.JwtBearer;trong top?
Mert Sayın

vâng, tôi không nghĩ nó đơn giản vì tài liệu MSFT nói rõ rằng phương pháp này không tồn tại trong 3.0. Tôi nghĩ rằng có thể có một số cách để sử dụng Dependency Injection khi khởi động để thêm JwtBearer nhưng tôi không thể tìm thấy trên internet.
Shelbypereira
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.