La maggior parte delle pagine di un sito web pubblico sono disponibili a qualsiasi visitatore, in quanto le impostazioni predefinite di ASP.NET consentono a chiunque di accedere alle pagine del sito stesso. Tuttavia potrebbe tornare utile riservare l'accesso ad alcune pagine solo a determinati utenti che magari hanno sottoscritto un abbonamento online oppure agli amministratori del sito.
Con Classic ASP per proteggere le pagine si utilizzavano generalmente due metodi:
- creazione di un sistema di protezione personalizzato, mediante l'utilizzo di database o simili, che consentisse agli utenti di accedere alle aree protette;
- utilizzo delle caratteristiche di protezione di IIS e Windows per controllare gli utenti che potevano accedere al sito.
ASP.NET introduce nuovi criteri nella gestione della protezione, pur mantenendo le caratteristiche di protezione esistenti.
L'autenticazione
L'autenticazione è il processo mediante il quale si ottengono le credenziali dell'utente collegato, quali nome e password; credenziali che verranno poi validate per il riconoscimento dell'utente.
In ASP.NET l'autenticazione utilizza i seguenti provider di autenticazione:
Autenticazione Windows
Si basa sull'autenticazione di base del sistema in combinazione con l'autenticazione di IIS. E' particolarmente adatta in situazioni di reti locali (intranet aziendali) in quanto necessita della creazione di account Windows per ciascun utente.
Autenticazione Passport
Si basa sul servizio web di autenticazione centralizzato Microsoft Passport, che offre un punto di accesso singolo e servizi di base per la gestione dei profili per i siti membri.
Autenticazione basata su Form
Si basa su un sistema che reindirizza le richieste non autenticate ad un form HTML (personalizzabile) usando il reindirizzamento http client. L'utente che viene indirizzato su questo form fornisce le credenziali per l'accesso (username e password) ed invia il form. Se l'applicazione autentica la richiesta, viene creato un cookie criptato che contiene le credenziali dell'utente, o una chiave (ticket) per riacquisire le credenziali. Il browser rinvia questo cookie ad ogni richiesta e l'utente può accedere alle applicazioni, visto che le richieste conservano questo cookie.
Il tipo di autenticazione da utilizzare in un applicazione ASP.NET viene specificata nella sezione <authentication> del file di configurazione web.config :
<configuration> <system.web> <authentication mode="Windows|Forms|Passport|None"> 'opzioni di autenticazione per l'applicazione </authentication> <authorization> 'utenti e gruppi che hanno accesso all'applicazione </authorization > <identity> 'specifica se l'applicazione gira con un account diverso </identity > </system.web> </configuration>
Il valore predefinito per l'autenticazione è Windows; non è possibile impostare la modalità di autenticazione a livelli inferiori a quello della directory principale dell'applicazione.
Le altre sezioni della sezione
La sezione
La sezione
In questo articolo ci vedremo come utilizzare l'autenticazione basata su Form. Per ulteriori informazioni sugli altri metodi di autenticazioni si faccia riferimento al SDK del .NET Framework
Autenticazione basata su Form
L'autenticazione basata su form, chiamata anche autenticazione basata su cookie, velocizza ed automatizza quelle operazioni che con Classic ASP venivano create dall'utente per proteggere l'applicazione o parte di essa.
L'autenticazione basata su Form evita anche la fastidiosa e poco 'user friendly' finestra di dialogo Windows Logon, consentendo di creare una form personalizzata dove l'utente inserirà username e password, di solito gestita con due caselle di testo ed un pulsante (anche se nessuno ci vieta di personalizzarla ulteriormente).
Flusso di controllo dell'autenticazione basata su Form
Come per ogni pagina, la richiesta è ricevuta da IIS che verifica per prima cosa che l'indirizzo IP ed il dominio dell'utente siano autorizzati. Verificata la validità dell'utente IIS passa la palla a ASP.NET che, come prima cosa, verifica se esiste un cookie di autenticazione all'interno degli header della richiesta.
Attenzione: Questo articolo contiene un allegato.
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.