Registrare un mime type dal web.config

Internet Information Service (IIS) versione 7.x offre la possibilità di configurare il proprio sito un po’ più in autonomia rispetto alle versioni precedenti.

Quando parlo di autonomia mi riferisco alla possibilità di cambiare tutti quei parametri che normalmente richiedono l’accesso alla console di IIS sul server, come compressione dei files, static content, mime types, etc. ; e proprio dell’abilitazione dei mime-type volevo parlare quest’oggi.

Prima di vedere come aggiungere nuovi mime-type alla configurazione di IIS, è giusto capire il perché un webserver non consenta l’accesso ad alcune estensioni di default, bloccando di conseguenza alcuni file a noi utili.
La risposta si racchiude in una sola parola: Sicurezza.

Di fatto, se non ci fosse questo tipo di blocco, un utente potrebbe scaricare anche files con dati sensibili, tipo .mdb, .inc, etc., ossia tutti quei files che il client non dovrebbe mai vedere J.

Capito il perché esistono questi blocchi, è necessario capire come abilitarne alcuni non accessibili normalmente.
A partire dalla versione 7.x di IIS siamo abituati a vedere una nuova sezione nel file di configurazione: “system.webServer”, sezione questa che viene ignorata nel caso l’applicazione stia girando in una versione antecedente alla 7.x (quindi non spaventiamoci se ci troviamo su Windows 2003 ed abbiamo questa strana sezione J).

Al suo interno possiamo impostare parecchi parametri, tra i quali ci sono i mime-type. Questa procedura è veramente molto semplice, ci basta infatti aggiungere poche righe di XML per avere ciò che ci serve, come mostrato dal codice seguente:

<system.webserver>
    <staticcontent>
        <mimemap fileextension=".mp4" mimetype="video/mp4">
        <mimemap fileextension=".m4v" mimetype="video/m4v">
    </mimemap></mimemap></staticcontent>
</system.webserver>

È molto importante fare attenzione a cosa ci è consentito fare e cosa no da IIS. Infatti non è detto che l’amministratore di sistema voglia offrire la possibilità allo sviluppatore di cambiare alcuni settaggi. Infatti è necessario che le “Delegation” di IIS siano impostate in “Allow” per le sezioni che ci interessano.

Chi fosse interessato all'argomento può buttare un occhio qui http://learn.iis.net/page.aspx/94/delegating-administration/

IIS Rulez!


Comments