Keizinan Teras ASP.NET: Memahami Peranan Pemberi Kuasa
Dalam Teras ASP.NET, pemberi kuasa ialah komponen yang menyemak sama ada pengguna mempunyai kebenaran yang diperlukan untuk melakukan tindakan tertentu. Ia seperti penjaga pintu untuk sumber aplikasi anda.
Apabila pengguna meminta sumber atau melakukan tindakan, pemberi kuasa dipanggil untuk menyemak sama ada pengguna mempunyai kebenaran yang sesuai untuk mengakses sumber itu atau melakukan tindakan itu. Jika pengguna tidak mempunyai kebenaran yang diperlukan, pemberi kuasa akan menafikan akses dan mengembalikan ralat.
Sebagai contoh, katakan anda mempunyai API web yang membenarkan pengguna membuat, membaca, mengemas kini dan memadam (CRUD) produk. Anda mungkin menggunakan pemberi kuasa untuk menyemak sama ada pengguna mempunyai kebenaran yang sesuai untuk melaksanakan setiap tindakan ini. Jika pengguna tidak mempunyai kebenaran yang diperlukan, pemberi kuasa akan menafikan akses dan mengembalikan ralat.
Pengesah boleh dilaksanakan dalam pelbagai cara, seperti menggunakan atribut tersuai, penapis atau perisian tengah. Ia juga boleh disepadukan dengan sistem pengesahan dan kebenaran lain, seperti OAuth atau OpenID Connect.
Dalam ASP.NET Core, pemberi kuasa terbina dalam dipanggil "DefaultAuthorizationPolicy" dan ia berdasarkan kelas "AuthorizeAttribute". Atribut ini boleh digunakan pada pengawal, tindakan dan juga parameter individu untuk menentukan kebenaran yang diperlukan untuk akses.
Sebagai contoh, berikut ialah contoh cara anda boleh menggunakan AuthorizeAttribute untuk menghendaki pengguna mempunyai peranan "Pentadbir" untuk mengakses sesuatu tertentu. action:
```
[Authorize(Roles = "Admin")]
public IActionResult MyAction()
{
// Tindakan ini hanya boleh diakses oleh pengguna dengan peranan Admin
}
```
Dalam contoh ini, AuthorizeAttribute ialah digunakan pada kaedah "MyAction" dan memerlukan pengguna mempunyai peranan "Admin" untuk mengaksesnya. Jika pengguna tidak mempunyai peranan "Pentadbir", mereka akan dinafikan akses dan ralat akan dikembalikan.



