Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial

Aree protette nell'applicazione

Creare aree con pagine visibili solo da utenti registrati e autenticati
Creare aree con pagine visibili solo da utenti registrati e autenticati
Link copiato negli appunti

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

  • un Web Form che chiamiamo DefaultIscritti.aspx. Questa è la pagina alla quale restringiamo l'accesso. Al suo interno possiamo scrivere un messaggio come "Pagina disponibile solo agli Iscritti!"
  • un file di configurazione
Figura 1. Creare l'area protetta
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
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
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.

Ti consigliamo anche