Il nucleo del motore IIS utilizza precondizioni per determinare quando attivare un particolare modulo. I motivi di prestazioni, ad esempio, potrebbero determinare che si desidera eseguire solo moduli gestiti per richieste che vanno anche a un gestore gestito. La precondizione nel seguente esempio (precondition="managedHandler"
) consente solo le forme modulo di autenticazione per le richieste che vengono gestiti anche da un gestore gestito, come le richieste di aspx o file .asmx:
<add name="FormsAuthentication" type="System.Web.Security.FormsAuthenticationModule" preCondition="managedHandler" />
Se si rimuove l'attributo precondition="managedHandler"
L'autenticazione Forms si applica anche ai contenuti che non sono offerti dai gestori gestiti, come .html, .jpg, .doc, ma anche per le estensioni classiche ASP (.asp) o PHP (.php). Vedere "How to Take Advantage of IIS Integrated Pipeline" per un esempio di attivazione dei moduli ASP.NET da eseguire per tutto il contenuto.
È inoltre possibile utilizzare un collegamento per abilitare tutti i moduli gestiti (ASP.NET) per l'esecuzione per tutte le richieste nell'applicazione, indipendentemente dalla condizione "managedHandler
".
per consentire a tutti i moduli riuscito a correre per tutte le richieste, senza dover configurare ogni voce del modulo per rimuovere il "managedHandler
" precondizione, utilizzare la proprietà runAllManagedModulesForAllRequests
nella sezione <modules>
:
<modules runAllManagedModulesForAllRequests="true" />
Quando si utilizza questa proprietà , la precondizione "managedHandler
" non ha alcun effetto e tutti i moduli gestiti vengono eseguiti per tutte le richieste.
è bene per eseguire tutti i modelli per tutte le richieste o io devono essere più specifico laggiù. Questo influenza la velocità dell'applicazione? –
Sì, ci sarà un problema di prestazioni. Dovresti invece usare la precondizione. –
allora come dovrei decidere quale modulo devo usare e quale no. –