ASP.Net  »  Guide  »  Guida ASP.NET 2.0 

I controlli per l'autenticazione



I nuovi controlli di ASP.NET 2.0 sulla sicurezza, semplificano la vita agli sviluppatori consentendo ad esempio di implementare il login degli utenti, la registrazione sul sito, il cambiamento della password, ed altro ancora. Questi compiti, che prima richiedevano la scrittura di codice, adesso possono essere svolti semplicemente trascinando i relativi controlli dalla barra degli strumenti all'area di lavoro.

Ad alimentare questi nuovi controlli, ci pensano le nuove API Membership. Una API è indica un insieme di procedure e strumenti specifici, disponibili al programmatore, per svolgere un determinato compito evitando di scrivere tutte le funzioni dal nulla.

Vediamo quindi come realizzare una pagina di login con i nuovi controlli messi a disposizione da ASP.NET 2.0 e presenti nella Login Toolbox del VWD.

Al solito apriamo un nuovo progetto e trasciniamo un controllo LoginView nella Default.aspx.

Figura 1. Inserire un controllo LoginView

Inserire un controllo login

Il controllo LoginView fa da contenitore per altri controlli e mostra le informazioni circa lo stato dell'utente collegato. Ci informa se l'utente ha già effettuato il login, cioè se ha già effettuato una autenticazione oppure no.

Inseriamo un messaggio di benvenuto sopra al controllo ed al suo interno nella visualizzazione "AnonymousTemplate" che troviamo tra le "Attività di LoginView". Questo messaggio verrà mostrato infatti quando l'utente è ancora anonimo ovvero quando non ha effettuato il login.

Figura 2. Inserire un messaggio per utenti anonimi

DESCRIZIONE

Al posto della parola Login, inseriamo un controllo LoginStatus che indicherà lo stato dell'utente e darà la possibilità, clickando, di andare alla pagina di Login. Modifichiamo la proprietà "LoginText" in visualizzazione "non connesso".

Selezionando LoggedInTemplate nelle Attività di LoginView, scriviamo il messaggio da visualizzare quando l'utente è autenticato, cioè ha effettuato il login. Possiamo inserire un controllo LoginName per visualizzare il nome dell'utente autenticato, ed un controllo LoginStatus, che consenta di fare il Logout, anche qui modifichiamo il testo con la proprietà "LogoutText" in visualizzazione "Connesso".

Figura 3. Inserire un messaggio per utenti loggati

DESCRIZIONE

A questo punto dobbiamo realizzare la pagina di Login, che chiamiamo Login.aspx. Quindi aggiungiamo la nuova pagina al progetto e, in modalità visuale, trasciniamo in Login.aspx un controllo Login.

Figura 4. Inserire un controllo Login

Inserire un controllo Login

Abbiamo così realizzato l'interfaccia utente per il Login. Qui l'utente dovrebbe inserire le sue credenziali e se queste sono giuste dovrebbe essere reindirizzato in una pagina del sito protetta.

Stiamo implementando quella che si dice autenticazione di tipo "Forms". Questo tipo di autenticazione non effettua automaticamente il criptaggio delle credenziali che vengono inserite, cosa che andrebbe fatta per evitare intercettazioni furtive.

Se vogliamo chiamare la pagina di login in un altro modo, ad esempio Autenticazione.aspx, dobbiamo impostare opportunamente il Web.config, in quanto il nome Login.aspx è accettato di default e non necessita di configurazioni particolari. Vediamo cosa aggiungere al Web.config nel caso che la pagina di login si chiami Autenticazione.aspx.

Listato 43. Modificare il nome della pagina di login in Web.Config

<authentication mode="Forms">
<forms
 name=".ASPXAUTH"
 loginUrl="Autenticazione.aspx"
 protection="Validation"
 timeout="999999" />
</authentication>

La modalità <authentication mode="Forms"> si usa per applicazioni web a differenza della <authentication mode="Windows"> che richiederebbe la creazione di un account utente su una macchina Windows.

Fra gli attributi dell'elemento <forms> notiamo:

  • name che indica il nome del cookie HTTP usato per l'autenticazione;
  • loginUrl che specifica la pagina usata come pagina di login;
  • protection che indica se i cookies sono criptati ed il livello di protezione;
  • timeout che specifica, in minuti, il tempo dopo il quale il cookie viene cancellato.

Quindi, se non lo abbiamo già fatto, aggiungiamo il Web.config alla nostra applicazione, cliccando con il pulsante destro sul nome del progetto in Esplora Soluzioni e aggiungendo un nuovo elemento di tipo File di configurazione Web.

Nel Web.config, sostituiamo <authentication mode="Windows">, che è la scelta predefinita, con <authentication mode="Forms">.

Nella finestra delle Proprietà del controllo Login, possiamo anche impostare la proprietà DestinationPageUrl ad una pagina del nostro sito, ad esempio "DestinationPage.aspx", che nel nostro caso va creata. Questa pagina è quella a cui verrà indirizzato il potenziale utente che si autentifica.

Ora possiamo pronti per testare la nostra applicazione.

Figura 5. Pagina iniziale con accesso anonimo

Pagina iniziale con accesso anonimo

Proviamo ad effettuare il Login inventando un nome, ad esempio "pippo" ed una password:

Figura 6. Pagina di login

Pagina iniziale con accesso anonimo

Otteniamo:

Figura 7. Login fallito

Login fallito

Il che è giusto perché l'utente "pippo" non esiste. Nella prossima lezione vedremo come inserire degli utenti.

L'esempio realizzato nel corso di questa lezione può essere scaricato da qui.

Ultimi articoli ASP.Net

LINQ e la trappola della 'deferred execution'

Una "trappola" in cui si può incappare utilizzando il risultato di...

C#, le Custom Type Conversion

Conversioni personalizzate tra classi, creare metodi particolari per...

Introduzione a Entity Framework

Il framework ORM messo a disposizione da .NET

Repeater: visualizzare un feed RSS

Utilizzare il controllo XMLDataSource e sfruttare il metodo XPath()...

Repeater, il server control "semplice"

Cos'è e come funziona il controllo Repeater

Altri articoli

Guide ASP.Net

Guida ASP.NET MVC Best Practices

Un workflow dettagliato e ricco di suggerimenti pratici per...

Guida ASP.NET Starter Kit

Un modo semplice per imparare ad utilizzare le tecnologie Microsoft...

Guida Visual Studio 2010

L'ambiente di sviluppo di riferimento per sviluppare applicazioni su...

Altre guide

Newsletter @Microsoft Dev

Ogni giovedì, direttamente nella tua e-mail: articoli, guide, tutorial e script ASP, ASP.Net, SQL server e IIS.

Iscriviti alla newsletter

Altre newsletter

Corsi in aula

Corso Progettazione database

11 Maggio 2012 a Milano
Disponibilità: 6 Posti

Amministratore di Reti Windows Server 2008

11 Giugno 2012 a Milano
Disponibilità: 5 Posti

Nessun corso previsto