Elemento add per httpHandlers (schema delle impostazioni ASP.NET)
Aggiornamento: novembre 2007
Consente di aggiungere un gestore a un'applicazione. Un gestore non è altro che un'interfaccia IHttpHandler o IHttpHandlerFactory che elabora le richieste di URL specifici.
Elemento <Configuration>
Elemento system.web (schema delle impostazioni ASP.NET)
Elemento httpHandlers (schema delle impostazioni ASP.NET)
Elemento add per httpHandlers (schema delle impostazioni ASP.NET)
<add verb="verb list"
path="path/wildcard"
type="type,assemblyname"
validate="true|false" />
Attributi ed elementi
Nelle sezioni riportate di seguito vengono illustrati attributi, elementi figlio ed elementi padre.
Attributi
Attributo |
Descrizione |
---|---|
path |
Attributo obbligatorio. Specifica che l'attributo path può contenere un singolo percorso URL o una semplice stringa con carattere jolly (ad esempio, *.aspx). |
type |
Attributo obbligatorio. Specifica una combinazione di classi/assembly separati da virgole. In ASP.NET la DLL dell'assembly viene cercata innanzitutto nella directory privata \bin dell'applicazione e quindi nella cache dell'assembly del sistema. |
verb |
Attributo obbligatorio. Specifica che l'elenco di verbi può essere un elenco di verbi HTTP separato da virgole, ad esempio "GET, PUT, POST", oppure un mapping di inizio script, ad esempio il carattere jolly asterisco [*]. |
validate |
Attributo facoltativo. Se è impostato su false, in ASP.NET non si tenterà di caricare la classe fino a quando non verrà ricevuta la richiesta corrispondente. Questo potrebbe ritardare l'errore, tuttavia migliora il tempo di avvio. |
Elementi figlio
Nessuno.
Elementi padre
Elemento |
Descrizione |
---|---|
configuration |
Specifica l'elemento di primo livello in ciascun file di configurazione utilizzato in Common Language Runtime e nelle applicazioni .NET Framework. |
System.web |
Specifica l'elemento di primo livello per la sezione di configurazione ASP.NET. |
httpHandlers |
Mappa le richieste in arrivo all'interfaccia IHttpHandler o IHttpHandlerFactory appropriata, in base all'URL e al verbo HTTP specificati nella richiesta. |
Note
Le impostazioni <httpHandlers> vengono ereditate da direttive secondarie.
Le direttive <add> vengono elaborate in ordine sequenziale dall'alto verso il basso. Se due o più sottodirectory <add> specificano la stessa combinazione verbo/percorso, l'elemento <add> finale esegue l'override di tutti gli altri.
In Microsoft Internet Information Services (IIS) viene utilizzata una modalità specifica di mapping delle estensioni alle ISAPI. Per fare in modo che le impostazioni relative a una determinata estensione di questa sezione abbiano effetto, in IIS è necessario eseguire il mapping di tale estensione all'ISAPI ASP.NET. Per le estensioni non standard, ovvero diverse da ASPX, ASMX, ASAX e così via, è necessario configurare IIS.
Configurazione predefinita
Nel file Machine.config in .NET Framework versione 1.1 viene configurato l'elemento add predefinito riportato di seguito.
<add verb="*" path="*.vjsproj" type="System.Web.HttpForbiddenHandler"/>
<add verb="*" path="*.java" type="System.Web.HttpForbiddenHandler"/>
<add verb="*" path="*.jsl" type="System.Web.HttpForbiddenHandler"/>
<add verb="*" path="trace.axd" type="System.Web.Handlers.TraceHandler"/>
<add verb="*" path="*.aspx" type="System.Web.UI.PageHandlerFactory"/>
<add verb="*" path="*.ashx" type="System.Web.UI.SimpleHandlerFactory"/>
<add verb="*" path="*.asmx" type="System.Web.Services.Protocols.WebServiceHandlerFactory,
System.Web.Services, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
validate="false"/>
<add verb="*" path="*.rem" type="System.Runtime.Remoting.Channels.Http.HttpRemotingHandlerFactory
System.Runtime.Remoting, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"
validate="false"/>
<add verb="*" path="*.soap" type="System.Runtime.Remoting.Channels.Http.HttpRemotingHandlerFactory,
System.Runtime.Remoting, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"
validate="false"/>
<add verb="*" path="*.asax" type="System.Web.HttpForbiddenHandler"/>
<add verb="*" path="*.ascx" type="System.Web.HttpForbiddenHandler"/>
<add verb="GET,HEAD" path="*.dll.config" type="System.Web.StaticFileHandler"/>
<add verb="GET,HEAD" path="*.exe.config" type="System.Web.StaticFileHandler"/>
<add verb="*" path="*.config" type="System.Web.HttpForbiddenHandler"/>
<add verb="*" path="*.cs" type="System.Web.HttpForbiddenHandler"/>
<add verb="*" path="*.csproj" type="System.Web.HttpForbiddenHandler"/>
<add verb="*" path="*.vb" type="System.Web.HttpForbiddenHandler"/>
<add verb="*" path="*.vbproj" type="System.Web.HttpForbiddenHandler"/>
<add verb="*" path="*.webinfo" type="System.Web.HttpForbiddenHandler"/>
<add verb="*" path="*.asp" type="System.Web.HttpForbiddenHandler"/>
<add verb="*" path="*.licx" type="System.Web.HttpForbiddenHandler"/>
<add verb="*" path="*.resx" type="System.Web.HttpForbiddenHandler"/>
<add verb="*" path="*.resources" type="System.Web.HttpForbiddenHandler"/>
<add verb="GET,HEAD" path="*" type="System.Web.StaticFileHandler"/>
<add verb="*" path="*" type="System.Web.HttpMethodNotAllowedHandler"/>
Nel file Machine.config in .NET Framework versione 1.0 viene configurato l'elemento add predefinito riportato di seguito.
<add verb="*" path="trace.axd" type="System.Web.Handlers.TraceHandler" />
<add verb="*" path="*.aspx" type="System.Web.UI.PageHandlerFactory" />
<add verb="*" path="*.ashx" type="System.Web.UI.SimpleHandlerFactory" />
<add verb="*" path="*.asmx" type="System.Web.Services.Protocols.WebServiceHandlerFactory,
System.Web.Services, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
validate="false"/>
<add verb="*" path="*.rem" type="System.Runtime.Remoting.Channels.Http.HttpRemotingHandlerFactory,
System.Runtime.Remoting, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"
validate="false"/>
<add verb="*" path="*.soap" type="System.Runtime.Remoting.Channels.Http.HttpRemotingHandlerFactory,
System.Runtime.Remoting, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"
validate="false"/>
<add verb="*" path="*.asax" type="System.Web.HttpForbiddenHandler" />
<add verb="*" path="*.ascx" type="System.Web.HttpForbiddenHandler" />
<add verb="*" path="*.config" type="System.Web.HttpForbiddenHandler" />
<add verb="*" path="*.cs" type="System.Web.HttpForbiddenHandler" />
<add verb="*" path="*.csproj" type="System.Web.HttpForbiddenHandler" />
<add verb="*" path="*.vb" type="System.Web.HttpForbiddenHandler" />
<add verb="*" path="*.vbproj" type="System.Web.HttpForbiddenHandler" />
<add verb="*" path="*.webinfo" type="System.Web.HttpForbiddenHandler" />
<add verb="*" path="*.asp" type="System.Web.HttpForbiddenHandler" />
<add verb="*" path="*.licx" type="System.Web.HttpForbiddenHandler" />
<add verb="*" path="*.resx" type="System.Web.HttpForbiddenHandler" />
<add verb="*" path="*.resources" type="System.Web.HttpForbiddenHandler" />
<add verb="GET,HEAD" path="*" type="System.Web.StaticFileHandler" />
<add verb="*" path="*" type="System.Web.HttpMethodNotAllowedHandler" />
L'elemento add predefinito riportato di seguito è configurato nel file Web.config a livello di radice in .NET Framework versione 2.0.
<add path="trace.axd" verb="*" type="System.Web.Handlers.TraceHandler" validate="True" />
<add path="WebResource.axd" verb="GET" type="System.Web.Handlers.AssemblyResourceLoader" validate="True" />
<add path="*.axd" verb="*" type="System.Web.HttpNotFoundHandler"
validate="True" />
<add path="*.aspx" verb="*" type="System.Web.UI.PageHandlerFactory" validate="True" />
<add path="*.ashx" verb="*" type="System.Web.UI.SimpleHandlerFactory" validate="True" />
<add path="*.asmx" verb="*" type="System.Web.Services.Protocols.WebServiceHandlerFactory,
System.Web.Services, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
validate="False" />
<add path="*.rem" verb="*" type="System.Runtime.Remoting.Channels.Http.HttpRemotingHandlerFactory,
System.Runtime.Remoting, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"
validate="False" />
<add path="*.soap" verb="*" type="System.Runtime.Remoting.Channels.Http.HttpRemotingHandlerFactory,
System.Runtime.Remoting, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"
validate="False" />
<add path="*.asax" verb="*" type="System.Web.HttpForbiddenHandler" validate="True" />
<add path="*.ascx" verb="*" type="System.Web.HttpForbiddenHandler" validate="True" />
<add path="*.master" verb="*" type="System.Web.HttpForbiddenHandler" validate="True" />
<add path="*.skin" verb="*" type="System.Web.HttpForbiddenHandler" validate="True" />
<add path="*.browser" verb="*" type="System.Web.HttpForbiddenHandler" validate="True" />
<add path="*.sitemap" verb="*" type="System.Web.HttpForbiddenHandler" validate="True" />
<add path="*.dll.config" verb="GET,HEAD" type="System.Web.StaticFileHandler" validate="True" />
<add path="*.exe.config" verb="GET,HEAD" type="System.Web.StaticFileHandler" validate="True" />
<add path="*.config" verb="*" type="System.Web.HttpForbiddenHandler" validate="True" />
<add path="*.cs" verb="*" type="System.Web.HttpForbiddenHandler" validate="True" />
<add path="*.csproj" verb="*" type="System.Web.HttpForbiddenHandler" validate="True" />
<add path="*.vb" verb="*" type="System.Web.HttpForbiddenHandler" validate="True" />
<add path="*.vbproj" verb="*" type="System.Web.HttpForbiddenHandler" validate="True" />
<add path="*.webinfo" verb="*" type="System.Web.HttpForbiddenHandler" validate="True" />
<add path="*.licx" verb="*" type="System.Web.HttpForbiddenHandler" validate="True" />
<add path="*.resx" verb="*" type="System.Web.HttpForbiddenHandler" validate="True" />
<add path="*.resources" verb="*" type="System.Web.HttpForbiddenHandler" validate="True" />
<add path="*.mdb" verb="*" type="System.Web.HttpForbiddenHandler" validate="True" />
<add path="*.vjsproj" verb="*" type="System.Web.HttpForbiddenHandler" validate="True" />
<add path="*.java" verb="*" type="System.Web.HttpForbiddenHandler" validate="True" />
<add path="*.jsl" verb="*" type="System.Web.HttpForbiddenHandler" validate="True" />
<add path="*.ldb" verb="*" type="System.Web.HttpForbiddenHandler" validate="True" />
<add path="*.dsdgm" verb="*" type="System.Web.HttpForbiddenHandler" validate="True" />
<add path="*.ssdgm" verb="*" type="System.Web.HttpForbiddenHandler" validate="True" />
<add path="*.lsad" verb="*" type="System.Web.HttpForbiddenHandler" validate="True" />
<add path="*.ssmap" verb="*" type="System.Web.HttpForbiddenHandler" validate="True" />
<add path="*.cd" verb="*" type="System.Web.HttpForbiddenHandler" validate="True" />
<add path="*.dsprototype" verb="*" type="System.Web.HttpForbiddenHandler" validate="True" />
<add path="*.lsaprototype" verb="*" type="System.Web.HttpForbiddenHandler" validate="True" />
<add path="*.sdm" verb="*" type="System.Web.HttpForbiddenHandler" validate="True" />
<add path="*.sdmDocument" verb="*" type="System.Web.HttpForbiddenHandler" validate="True" />
<add path="*.mdf" verb="*" type="System.Web.HttpForbiddenHandler" validate="True" />
<add path="*.ldf" verb="*" type="System.Web.HttpForbiddenHandler" validate="True" />
<add path="*" verb="GET,HEAD,POST" type="System.Web.DefaultHttpHandler" validate="True" />
<add path="*" verb="*" type="System.Web.HttpMethodNotAllowedHandler" validate="True" />
Esempio
Nell'esempio di codice riportato di seguito viene illustrato come eseguire il mapping di tutte le richieste HTTP di file con estensione .New alla classe MyHandler.New e di richieste HTTP GET e HEAD di file con estensione .MyNewFileExtension alla classe MyHandler.MNFEHandler. Entrambe le classi si trovano nell'assembly MyHandler incluso nel file MyHandler.dll.
<configuration>
<system.web>
<httpHandlers>
<add verb="*"
path="*.New"
type="MyHandler.New,MyHandler"/>
<add verb="GET,HEAD"
path="*.MyNewFileExtension"
type="MyHandler.MNFEHandler,MyHandler.dll"/>
</httpHandlers>
<system.web>
</configuration>
Informazioni sull'elemento
Gestore della sezione di configurazione |
|
Membro di configurazione |
|
Percorsi configurabili |
Machine.config Web.config a livello di radice Web.config a livello di applicazione Web.config a livello di directory fisica o virtuale |
Requisiti |
Microsoft Internet Information Services (IIS) versione 5.0, 5.1 o 6.0 .NET Framework versione 1.0, 1.1 o 2.0 Microsoft Visual Studio 2003 o Visual Studio 2005 |
Vedere anche
Attività
Procedura: bloccare le impostazioni di configurazione di ASP.NET
Concetti
Cenni preliminari sulla configurazione di ASP.NET
Controlli server Web ASP.NET e funzionalità del browser
Protezione della configurazione di ASP.NET
Scenari di configurazione ASP.NET
Riferimenti
Elemento httpHandlers (schema delle impostazioni ASP.NET)
Elemento system.web (schema delle impostazioni ASP.NET)
Elemento clear per httpHandlers (schema delle impostazioni ASP.NET)
Elemento remove per httpHandlers (schema delle impostazioni ASP.NET)
Altre risorse
File di configurazione ASP.NET
Impostazioni di configurazione di ASP.NET