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
:
- Metode GetPolicy(String)
- Getter DefaultPolicy
- Getter FallbackPolicy
- Getter InvokeHandlersAfterFailure
AuthorizationBuilder
tidak memiliki setara untuk anggota AuthorizationOptions
ini , 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.
ASP.NET Core