Bagikan melalui


Otorisasi: Sumber daya dalam perutean titik akhir adalah HttpContext

Saat menggunakan perutean titik akhir di ASP.NET Core 3.1, sumber daya yang digunakan untuk otorisasi adalah titik akhir. Pendekatan ini tidak cukup untuk mendapatkan akses ke data rute (RouteData). Sebelumnya di MVC, HttpContext sumber daya diteruskan, yang memungkinkan akses ke titik akhir (Endpoint) dan data rute. Perubahan ini memastikan bahwa sumber daya yang diteruskan ke otorisasi selalu HttpContextmenjadi .

Versi yang diperkenalkan

ASP.NET Core 5.0

Perilaku yang lama

Saat menggunakan perutean titik akhir dan atribut middleware otorisasi (AuthorizationMiddleware) atau [Otorisasi ], sumber daya yang diteruskan ke otorisasi adalah titik akhir yang cocok.

Perilaku yang baru

Perutean titik akhir meneruskan HttpContext ke otorisasi.

Alasan untuk berubah

Anda bisa sampai ke titik akhir dari HttpContext. Namun, tidak ada cara untuk mendapatkan dari titik akhir ke hal-hal seperti data rute. Ada kehilangan fungsionalitas dari perutean non-titik akhir.

Jika aplikasi Anda menggunakan sumber daya titik akhir, panggil GetEndpoint HttpContext untuk terus mengakses titik akhir.

Anda dapat kembali ke perilaku lama dengan SetSwitch. Misalnya:

AppContext.SetSwitch(
    "Microsoft.AspNetCore.Authorization.SuppressUseHttpContextAsAuthorizationResource",
    isEnabled: true);

API yang Terpengaruh

Tidak ada