Buat AutriatTribute Custom di ASP.NET Core untuk memenuhi keperluan pernyataan mudah
dengan menulis semula bool AuthorizeCore(HttpContextBase httpContext)
. Walau bagaimanapun, kaedah ini tidak lagi wujud dalam . AuthorizeAttribute
AuthorizeAttribute
Kaedah semasa membuat Custom
di sini AuthorizeAttribute
. Idea asas kaedah baru ini adalah menggunakan ciri baru untuk menentukan "strategi" (seperti ). atau lebih). [Authorize]
[Authorize(Policy = "YouNeedToBe18ToDoThis")]
Reka bentuk strategik adalah suplemen yang baik untuk rangka kerja, dan pasukan teras keselamatan ASP.NET harus memuji untuk ini. Dalam erti kata lain, ia tidak sesuai untuk semua situasi. Kelemahan kaedah ini adalah bahawa ia gagal menyediakan penyelesaian yang mudah untuk keperluan yang paling biasa: hanya menegaskan pengawal atau pernyataan operasi yang perlu diberikan. Sekiranya permohonan itu mungkin mempunyai beratus -ratus kebenaran diskret untuk menguruskan operasi CRUD pada satu sumber rehat ("Cancreaterorder", "Canreadordorder", "CanUpdateOrder", "Candeleteorder", dll), kaedah baru mesti memerlukan nama dan perisytiharan strategi Nama Ulang satu -untuk pemetaan (mis. Startup.cs
), sama ada menulis beberapa kod untuk melaksanakan pendaftaran ini semasa runtime (contohnya, baca semua jenis pengisytiharan dari pangkalan data dan laksanakan panggilan di atas dalam kitaran). Bagi kebanyakan kes, masalah kaedah ini adalah bahawa ia adalah overhead yang berlebihan.
Walaupun pasukan keselamatan teras ASP.NET mengesyorkan untuk tidak membuat penyelesaian anda sendiri, dalam beberapa kes, ini mungkin pilihan permulaan yang paling berhati -hati. options.AddPolicy("CanUpdateOrder", policy => policy.RequireClaim(MyClaimTypes.Permission, "CanUpdateOrder"));
Atas ialah kandungan terperinci Bagaimana untuk membuat AutriatTribute tersuai dalam teras ASP.NET untuk keperluan tuntutan mudah?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!