Modificare i dati utente

di: Angelo Ranucci     20 Settembre 2006

Prima di testare realizziamo una pagina alla quale utenti possono accedere per resettare la propria Password nel caso l'abbiano dimenticata. La pagina deve essere accessibile agli utenti che non riescono a fare il Login quindi va inserita nella cartella principale del sito, o meglio, non va messa in una cartella protetta. Chiamiamo questa nuova pagina "resetPassword.aspx".

Figura 4. Realizzazione di resetPassword.aspx

Realizzazione di resetPassword.aspx

Qui dobbiamo inserire il Nome Utente, dare Invio per ricevere la Domanda di sicurezza. Inserire la risposta e dare Invio, e, se la risposta è giusta, otteniamo la nuova Password e possiamo ritentare il Login. Se la risposta è sbagliata otteniamo un messaggio nell'etichetta in rosso.

Nella pagina di Login possiamo inserire un collegamento a questa nuova pagina, in modo che gli utenti che non ricordano la Password, possano facilmente raggiungerla. Nella resetPassword.aspx abbiamo messo un link alla pagina di Login in modo che l'utente possa provare di nuovo ad accedere con la nuova Password.

Implementiamo ora la resetPassword.aspx.cs scrivendo il codice per i gestori degli eventi OnClick sui due pulsanti:

Listato 6. Implementazione dei gestori OnClick su resetPassword.aspx.cs

protected void ButtonInvioNome_Click(object sender, EventArgs e)
{
  MembershipUser user = Membership.GetUser(TextBoxNome.Text, false);
  LabelDomanda.Text = user.PasswordQuestion;
}

protected void ButtonInvioRisposta_Click(object sender, EventArgs e)
{
  MembershipUser user = Membership.GetUser(TextBoxNome.Text, false);
  try
  {
    LabelNewPassword.Text = user.ResetPassword(TextBoxRisposta.Text);
  }
  catch (Exception ex)
  {
    LabelMsg.Text = ex.Message;
  }
}

Il primo gestore usa il metodo GetUser a cui passa il nome dell'utente ed il valore booleano false che indica che l'utente non è on line. Riempie poi "LabelDomanda" per mezzo della proprietà PasswordQuestion della classe MembershipUser.

Il secondo gestore ricava l'utente come il primo e tenta il reset della Password con il metodo ResetPassword a cui passa la risposta di sicurezza. Se qualcosa va storto lancia un'eccezione e manda un messaggio.

Facciamo un test immaginando che l'utente "Pippo" fallisca il Login perché non ricorda la Password.

Dalla pagina di Login clicca poi sul link "Password dimenticata?", che avevamo inserito, e arriva alla pagina "Reset Password". Qui inserisce il suo nome e da Invio. Riceve la domanda di sicurezza. Inserisce la risposta e da Invio. Se la risposta è giusta ottiene la Password.

Figura 5. Test di resetPassword.aspx

Test di resetPassword.aspx

Il passo successivo è di effettuare il Login con la Password ottenuta.

Verifichiamo poi che mettendo una risposta sbagliata ci ritorni un messaggio d'errore.

L'esempio sviluppato in questo articolo, privato del database per comodità, può essere scaricato da qui.

Guide ASP.Net

Guida Windows Azure Code Snippets

Le migliori pratiche per far girare le applicazioni "in the cloud",...

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...

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