Elemento httpHandlers (schema delle impostazioni ASP.NET)
Aggiornamento: novembre 2007
Mappa le richieste in arrivo al gestore appropriato, in base all'URL e al verbo HTTP specificati nella richiesta. Questo elemento può essere dichiarato a qualsiasi livello della gerarchia di configurazione.
Elemento <Configuration>
Elemento system.web (schema delle impostazioni ASP.NET)
Elemento httpHandlers (schema delle impostazioni ASP.NET)
<httpHandlers>
<add... />
<remove... />
<clear/>
</httpHandlers>
Attributi ed elementi
Nelle sezioni riportate di seguito vengono illustrati attributi, elementi figlio ed elementi padre.
Attributi
Nessuno.
Elementi figlio
Sottotag |
Descrizione |
---|---|
add |
Elemento facoltativo. Specifica il mapping verbo/percorso a un gestore. |
clear |
Elemento facoltativo. Rimuove tutti i mapping ai gestori attualmente configurati o ereditati. |
remove |
Elemento facoltativo. Rimuove un mapping verbo/percorso a un gestore. La direttiva remove deve corrispondere esattamente alla combinazione verbo/percorso di una precedente direttiva add. Non è supportato l'utilizzo di caratteri jolly. |
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. |
Note
Le impostazioni di <httpHandlers> vengono ereditate dalle sottodirectory dell'applicazione.
Le direttive <add> vengono elaborate in ordine sequenziale dall'alto verso il basso. Se due o più elementi <add> specificano la stessa combinazione verbo/percorso, l'elemento <add> finale esegue l'override di tutti gli altri.
Nota
In Microsoft Internet Information Services (IIS) viene utilizzato un modello specifico di mapping delle estensioni alle ISAPI. Per fare in modo che il mapping tra una determinata estensione dell'applicazione e il gestore abbia effetto, in IIS è necessario eseguire il mapping di tale estensione all'ISAPI ASP.NET. Per le estensioni non standard, ad esempio le estensioni personalizzate, è necessario configurare IIS in maniera appropriata.
Configurazione predefinita
Nel file Machine.config in .NET Framework versione 2.0 viene configurato l'elemento httpHandlers predefinito riportato di seguito.
<httpHandlers />
Nel file Machine.config in .NET Framework versione 1.1 viene configurato l'elemento httpHandlers predefinito riportato di seguito.
Nota
System.Web.HttpForbiddenHandler è un tipo interno che genera l'errore HTTP 403 "Accesso negato" quando viene eseguito un tentativo di accedere a una risorsa non consentita.
System.Web.StaticFileHandler è un altro tipo interno che gestisce l'accesso ai file specificati. In caso di problemi di accesso, genera uno degli errori seguenti: HTTP 401 "Non autorizzato", HTTP 403 "Accesso negato" o HTTP 404 "Impossibile trovare il file o la directory".
<httpHandlers>
<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"/>
</httpHandlers>
Nel file Machine.config in .NET Framework versione 1.0 viene configurato l'elemento httpHandlers predefinito riportato di seguito.
<httpHandlers>
<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" />
</httpHandlers>
L'elemento httpHandlers predefinito riportato di seguito è configurato nel file Web.config a livello di radice in .NET Framework 2.0.
<httpHandlers>
<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" />
</httpHandlers>
Esempio
Nell'esempio riportato di seguito viene illustrato come eseguire le operazioni descritte:
Mappare tutte le richieste HTTP di file con estensione .New alla classe MyHandler.New
Mappare le richieste HTTP GET e HEAD di file con estensione .MyNewFileExtension alla classe MyHandler.MNFEHandler.
Entrambe le classi si trovano nell'assembly MyHandler, all'interno del 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 system.web (schema delle impostazioni ASP.NET)
Elemento add per httpHandlers (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