Mesin inti IIS menggunakan prasyarat untuk menentukan kapan harus mengaktifkan modul tertentu. Alasan kinerja, misalnya, mungkin menentukan bahwa Anda hanya ingin menjalankan modul terkelola untuk permintaan yang juga masuk ke handler terkelola. Prasyarat dalam contoh berikut ( precondition="managedHandler"
) hanya memungkinkan modul autentikasi formulir untuk permintaan yang juga ditangani oleh penangan terkelola, seperti permintaan file .aspx atau .asmx:
<add name="FormsAuthentication" type="System.Web.Security.FormsAuthenticationModule" preCondition="managedHandler" />
Jika Anda menghapus atribut precondition="managedHandler"
, Formulir Otentikasi juga berlaku untuk konten yang tidak dilayani oleh penangan terkelola, seperti .html, .jpg, .doc, tetapi juga untuk ekstensi ASP (.asp) atau PHP (.php) klasik. Lihat " Cara Mengambil Keuntungan dari IIS Integrated Pipeline " untuk contoh mengaktifkan modul ASP.NET untuk dijalankan untuk semua konten.
Anda juga dapat menggunakan pintasan untuk mengaktifkan semua modul yang dikelola (ASP.NET) untuk menjalankan semua permintaan dalam aplikasi Anda, terlepas dari managedHandler
prasyarat " ".
Untuk mengaktifkan semua modul terkelola untuk menjalankan semua permintaan tanpa mengonfigurasi setiap entri modul untuk menghapus managedHandler
prasyarat " ", gunakan runAllManagedModulesForAllRequests
properti di <modules>
bagian:
<modules runAllManagedModulesForAllRequests="true" />
Ketika Anda menggunakan properti ini, managedHandler
prakondisi " " tidak berpengaruh dan semua modul terkelola berjalan untuk semua permintaan.
<modules runAllManagedModulesForAllRequests="true">
. Tapi saya melihat sekarang mungkin membuat overhead. Jadi, apakah ada modul khusus yang bertanggung jawab yang saya bisa aktifkan untuk mendapatkan titik "." di MVC WebAPI Url, sebagai pengganti hanya mengaktifkan semuanya dengan<modules runAllManagedModulesForAllRequests="true">
? Apakah itu misalnya modul "UrlAuthorization"?tambahkan kode di bawah ini di web.config
sumber