Nella lezione precedente abbiamo visto come aggiungere utenti alla nostra applicazione. Se vogliamo che utenti con specifiche credenziali possano accedere a delle pagine del sito protette, dobbiamo configurare la nostra applicazione creando delle aree con accesso riservato solo agli utenti autenticati.
Il modo più semplice per restringere l'accesso ad alcune pagine, è raggrupparle all'interno di una cartella, ed applicare poi le restrizioni a tutta la cartella.
Per restringere l'accesso ad una cartella del sito, possiamo inserire al suo interno un file di configurazione particolare, oppure agire sul file di configurazione dell'intero sito, posto nella cartella principale (root) dell'applicazione, aggiungendo un opportuno elemento <location>.
Per realizzare un esempio, sfruttiamo quanto realizzato nella lezione predecente. La prima cosa da fare è creare una nuova cartella all'interno della cartella principale del sito. Quindi, con in Esplora Soluzioni, aggiungiamo una cartella dal nome "Iscritti". Nella cartella "Iscritti" aggiungiamo
DefaultIscritti.aspx. Questa è la pagina alla quale restringiamo l'accesso. Al suo interno possiamo scrivere un messaggio come "Pagina disponibile solo agli Iscritti!"Figura 1. Creare l'area protetta
Nel nuovo Web.Config aggiungiamo un elemento <authorization> all'interno di <system.web>
Listato 44. Restringere l'accesso ai soli autorizzati
<authorization>
<deny users="?"/>
</authorization>
Col tag <deny> indichiamo che vogliamo negare l'accesso e specifichiamo che vogliamo negarlo agli utenti (attributo users) che sono anonimi (punto interrogativo), ovvero non autenticati.
Se avessimo usato invece del punto interrogativo l'asterisco che ha il significato di "tutti gli utenti", avremmo negato l'accesso a chiunque.
Invece di usare l'elemento <deny> (nega), potevamo usare l'elemento <allow> (consenti) e specificare esplicitamente gli utenti con diritto di accesso alla cartella protetta.
A questo punto siamo pronti per effettuare un test. Poniamoci nella situazione di voler entrare nella pagina protetta, la DefaultIscritti.aspx. Per farlo apriamola come per modificarla e premiamo F5. In questo modo, il Web Server cercherà di accedere subito a quella pagina senza andare alla Default.aspx.
Figura 2. Pagina di login
Naturalmente ci viene richiesta l'autenticazione e l'applicazione ci reindirizza alla pagina di Login. Inseriamo le nostre credenziali, e queste sono giuste, l'applicazione ci dovrebbe reindirizzare alla pagina richiesta in precedenza, la DefaultIscritti.aspx. Proviamo inserendo:
Nome utente: Paperino Password: paperino@
Otteniamo la nostra pagina protetta:
Figura 3. Accesso alla pagina protetta
Se invece di avere un Web.config per ogni cartella protetta preferiamo averne uno solo, dobbiamo impostare le restrizioni nel file di configurazione della cartella principale del sito, inserendo in quello un elemento <location>, con il percorso della cartella da proteggere:
Listato 45. Cartella protetta con un solo Web.config
</system.web>
<location path="Iscritti">
<system.web>
<authorization>
<deny users="?"/>
</authorization>
</system.web>
</location>
</configuration>
L'esempio realizzato nel corso di questa lezione può essere scaricato da qui.
LINQ e la trappola della 'deferred execution'Una "trappola" in cui si può incappare utilizzando il risultato di... |
C#, le Custom Type ConversionConversioni personalizzate tra classi, creare metodi particolari per... |
Introduzione a Entity FrameworkIl framework ORM messo a disposizione da .NET |
Repeater: visualizzare un feed RSSUtilizzare il controllo XMLDataSource e sfruttare il metodo XPath()... |
Repeater, il server control "semplice"Cos'è e come funziona il controllo Repeater |
Guida ASP.NET MVC Best PracticesUn workflow dettagliato e ricco di suggerimenti pratici per... |
Guida ASP.NET Starter KitUn modo semplice per imparare ad utilizzare le tecnologie Microsoft... |
Guida Visual Studio 2010L'ambiente di sviluppo di riferimento per sviluppare applicazioni su... |
Ogni giovedì, direttamente nella tua e-mail: articoli, guide, tutorial e script ASP, ASP.Net, SQL server e IIS.
Iscriviti alla newsletter
|
|
Corso Progettazione database11 Maggio 2012 a Milano |
|
|
Amministratore di Reti Windows Server 200811 Giugno 2012 a Milano |
|
Nessun corso previsto |