Bagikan melalui


ASP0025: Gunakan AddAuthorizationBuilder untuk mendaftarkan layanan otorisasi dan membuat kebijakan.

Nilai
ID Aturan ASP0025
Kategori Penggunaan
Perbaikan bersifat disruptif atau non-disruptif Non-disruptif

Penyebab

Penggunaan AddAuthorization dapat dikonversi ke yang baru AddAuthorizationBuilder.

Deskripsi aturan

Gunakan AddAuthorizationBuilder untuk mendaftarkan layanan otorisasi dan membuat kebijakan.

Cara memperbaiki pelanggaran

Untuk memperbaiki pelanggaran aturan ini, ganti penggunaan AddAuthorization dengan AddAuthorizationBuilder.

Perbaikan kode mengonversi penggunaan setter untuk properti berikut dari AuthorizationOptions:

Penggunaan setter ini dikonversi ke panggilan metode yang setara pada AuthorizationBuilder:

Tidak ada diagnostik yang dilaporkan ketika tindakan konfigurasi diteruskan untuk AddAuthorization menggunakan salah satu anggota berikut dari AuthorizationOptions:

AuthorizationBuilder tidak memiliki setara untuk anggota AuthorizationOptionsini , sehingga mereka tidak dapat dikonversi.

Tidak ada diagnostik yang dilaporkan jika tindakan konfigurasi yang diteruskan ke AddAuthorization berisi operasi yang tidak terkait dengan AuthorizationOptions. Perbaikan kode tidak akan dapat memetakan operasi yang tidak terkait secara otomatis ke API yang fasih dari AddAuthorizationBuilder.

Contoh berikut menunjukkan kode yang memicu diagnostik ini:

var builder = WebApplication.CreateBuilder(args);

builder.Services.AddAuthorization(options =>
{
    options.AddPolicy("AtLeast21", policy =>
        policy.Requirements.Add(new MinimumAgeRequirement(21)));
});

var app = builder.Build();

app.UseAuthorization();

app.Run();

Contoh berikut menunjukkan hasil penerapan perbaikan kode:

var builder = WebApplication.CreateBuilder(args);

builder.Services.AddAuthorizationBuilder()
  .AddPolicy("AtLeast21", policy =>
  {
        policy.Requirements.Add(new MinimumAgeRequirement(21)));
  });

var app = builder.Build();

app.UseAuthorization();

app.Run();

Kapan harus menekan peringatan

Tingkat keparahan diagnostik ini adalah Informasi. Sembunyikan peringatan jika Anda tidak ingin menggunakan sintaks baru.