Il modello di sicurezza usato da ASP.NET 2.0, conosciuto come Membership Provider Model consente una elevata flessibilità nella scelta delle caratteristiche da aggiungere alle proprie applicazioni.
Il Membership Provider Model è un modello a 4 strati. Al livello più alto troviamo i controlli server, che in parte abbiamo già visto nella precedente lezione e che, nel VWD, si trovano nell'area "Accesso" della barra degli strumenti.
Al terzo livello troviamo le Membership API, in cui ci sono due classi: la classe Membership
, che si occupa di compiti come aggiungere e cancellare utenti, e la classe MembershipUser
, che si occupa della gestione delle informazioni utente come la password o delle domande per recuperare password smarrite.
Le Membership API usano i Membership Provider, posti al secondo livello, che servono a salvare o comunque a mantenere le informazioni, su di un supporto per immagazzinare i dati. Il Membership Provider di default nel VWD è l'SQL Express 2005 Membership Provider. Il ruolo del Membership Provider è quindi quello di fare da ponte tra le Membership API e i supporti di immagazzinamento dei dati, cioè i database, in modo che, lo sviluppatore non debba scrivere codice a basso livello.
Se lo sviluppatore vuole immagazzinare i suoi dati in un formato diverso, ad esempio in un documento XML, può scrivere un proprio Membership Provider ad hoc.
Al primo livello troviamo i sistemi di immagazzinamento dei dati tra cui quello di default che è un database SQL Server.
In questa lezione vedremo come aggiungere gli utenti al sito utilizzando lo Strumento Amministrazione sito Web, WAT, che una novità di ASP.NET 2.0.
La cosa che ci dobbiamo aspettare, dal discorso appena fatto, è la memorizzazione delle informazioni su di un database, onde poterle mantenere nel tempo. Di default, il database viene messo nella cartella App_Data
ed è un database SQL Server 2005 Express.
Partiamo dall'applicazione realizzata nella lezione precedente e aggiungiamo un nuovo utente al nostro sito. Per farlo lanciamo il WAT nel VWD: dal menu Sito Web>Configurazione di ASP.NET.
L'icona dello strumento di amministrazione è presente anche in Esplora Soluzioni, vi si accede anche dalle Attività di LoginView alla voce "Amministra sito web".
Una volta lanciata l'amministrazione del sito, clicchiamo su "Protezione" e poi su "Crea utente", e riemiamo il form per inserire le informazioni relative al nuovo utente.
Cliccando sul pulsante "Crea utente", può succedere che la password inserita non vada bene, come in questo caso:
Anche se non citato esplicitamente, affinché la password vada bene deve essere di almeno 7 caratteri e contenere almeno un carattere non alfanumerico, questo vuol dire che un numero non va bene, ma un carattere come '@' può andar bene. Riproviamo, e creiamo gli utenti Paperino e Pippo, utilizzando ad esempio questi dati:
Utente 1 ------------------------ Nome: Paperino Password: paperino@ e-mail: paperino@yahoo.com Domanda: Chi è il più fortunato? Risposta: Gastone ---------------------------------- Utente 2 ------------------------ Nome: Pippo Password: pipposki@ e-mail: pippo@yahoo.com Domanda: Chi è il più furbo? Risposta: Topolino ----------------------------------
La lista degli utenti creati la si può vedere nella sezione Home>Protezine>Gestisci utenti
Da qui si possono modificare le informazioni sugli utenti.
Proviamo adesso a testare la nostra applicazione. Clicchiamo su "Login" ed inseriamo un account valido.
Clicchiamo sul pulsante "Accedi".
Possiamo anche provare che, accedendo direttamente alla Login.aspx
, si viene indirizzati, dopo l'autenticazione, alla pagina DestinationPage.aspx
.
Infine notiamo che in Esplora Soluzioni, all'interno della cartella App_Data
è presente il file di database ASPNETDB.MDF
. Se visualizziamo le tabelle presenti in questo file con Esplora Database possiamo accedere alle informazioni sugli utenti.
Si vede chiaramente che le password sono trattate in modo da non poter essere riconosciute.
L'esempio realizzato nel corso di questa lezione può essere scaricato da qui.