Fra le tante novità di IIS7 e suo fratello 7.5, sicuramente quella che ho apprezzato maggiormente è l'integrazione di una nuova modalità di autenticazione:
IIS Managar Authentication.
Se avete la (s)fortuna di configurarvi da soli un web server (dev, staging o produzione che sia), potreste avere la necessità di configurare un account FTP e limitare l'accesso al front-end, almeno fino a quando l'applicazione web (o anche semplicemente un sito web) sarà online.
Fino ad IIS6 per creare un account FTP avevate 2 alternative:
1) usare il server FTP di IIS
2) usare un server FTP extra (filezilla, serv-u, ecc)
Se non volete leggere questa parte,
andate al nocciolo :)
<parte_noiosa>
La soluzione 2 era sicuramente la più pratica, in quanto la prima richiedeva:
1) configurare un account windows locale
2) configurare gli accessi alla certella di root dell'ftp (cartella fisica, quindi da explorer)
3) ... altri passi che non ricordo.
Nulla di trascendentale, ma se avessimo 10 applicazioni diverse e per ognua avessimo la stessa esigenza, dovremmo configuare 10 account windows differenti... slow!
Per il website occorreva una cosa simile: configurare un account windows locale e dare le grant sulla cartella (cartella fisica, quindi da explorer, come per l'ftp), dopo aver disabilitato l'accesso anonimo e abilitato l'autenticazione windows.
Per evitare di metter mano agli account e di dire parolacce, quindi mi rifiutavo di usare l'ftp di IIS e usavo filezilla server. Per assicurare l'accesso solo agli utenti autorizzati usavo una banalissima forms authentication, quindi configuravo il web.config di conseguenza.
Queste 2 soluzioni andavano alla grande per la maggior parte delle casistiche in questione.
Un problema però nasceva con la forms authentication: non essendo le pagine statiche (non asp.net) gestite dal framework, ma direttametne da IIS7, se il website fosse stato statico, chiunque avrebbe bypassato l'autenticazione. Spero di essere stato chiaro: IIS6 non ha la pipeline integrata.
Workaround: assegnare l'estensione html all'ASP.NET ISAPI.
Devo andare oltre? :9 Mi era più semplcie chiedere ai "miei" grafici di rinominare le pagine in .aspx, ma il problema restava per gli altri file: immagini, video...
Che pizza... very slow!
</parte_noiosa>
Con l'arrivo di IIS 7 e l'IIS manager authentication, non occorre creare account windows locali: tutto si fa da IIS: si creano le utenze, si definisce chi e quali permessi (lettura/scrittura) deve avere sul singolo website, virtual directory o ftp site... tutto. Rock!
Il supporto ad IIS7 e alle sue nuove caratteristiche è ottimo:
-
http://learn.iis.net/
-
http://mvolo.com/blogs/serverside/
Solo per citarne 2 fra i più importanti, ma che fatica, cmq! :)
Nonostante l'ottima documentazione ho dovuto sudare lo stesso per configurare il primo account FTP, perché alcuni aspetti venivano dati per scontati o forse sorvolati di proposito, vista la laboriosità.
Via il prima, il resto è stato semplice e ora gli account prolificano :)
Il post diventa lunghetto... completo nel prossimo :)
Ah dimenticavo: l'SMTP. Una cosa che non ho capito, ma forse non ho letto abbastanza, è perché debba configurare IIS6 (e il server SMTP di IIS6) per inviare mail dal mio web site che gira su IIS7. Mah! Han fatto 30... :)
IIS7,
FTP,
IIS Managar Authentication
hth,
a.