Un Membership Provider con SQLite

di: Francesco Camarlinghi     19 Dicembre 2007

La seconda funzione che analizzeremo è invece una di quelle ereditate da MembershipProvider, in particolare GetUserNameByEmail, che si occupa di trovare l'utente a cui appartiene un dato indirizzo email. Essendo una delle più semplici, mi è sembrata la scelta migliore.

Override di GetUserNameByEmail()

public override string GetUserNameByEmail(string email)
{
  SQLiteConnection conn = new SQLiteConnection(connectionString);
  SQLiteCommand cmd = new SQLiteCommand("SELECT Username" +
        " FROM [" + tableName + "] WHERE Email = ? AND
ApplicationName = ?", conn);
  cmd.Parameters.Add("@Email", DbType.String, 128).Value = email;
  cmd.Parameters.Add("@ApplicationName", DbType.String, 255).Value = applicationName;

  string username = "";

  try
  {
    conn.Open();
    username = (string)cmd.ExecuteScalar();
  }
  catch (SQLiteException e)
  {
    throw e;
  }
  finally
  {
    conn.Close();
  }

  if (username == null) username = "";
  return username;
}

Per prima cosa viene creata la connessione al database SQLite, seguita dall'oggetto SQLiteCommand per eseguire la query; esecuzione che avviene all'interno di un blocco try.

Notare che nella nostra implementazione le possibili eccezioni generate vengono per semplicità reindirizzate verso la classe che ha invocato il metodo.

Conclusioni

Dopo aver fornito una breve panoramica sul funzionamento dei provider di ASP.NET, è stata introdotta la creazione di un Membership Provider personalizzato per SQLite, esaminando la struttura del database ed alcune funzioni.

Come ulteriore riferimento per la scrittura di provider personalizzati vi rimando all'ottima sezione di MSDN, Provider Toolkit.

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