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.
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.
Guida Windows Azure Code SnippetsLe migliori pratiche per far girare le applicazioni "in the cloud",... |
Guida ASP.NET MVC Best PracticesUn workflow dettagliato e ricco di suggerimenti pratici per... |
Guida ASP.NET Starter KitUn modo semplice per imparare ad utilizzare le tecnologie Microsoft... |
Ogni giovedì, direttamente nella tua e-mail: articoli, guide, tutorial e script ASP, ASP.Net, SQL server e IIS.
Iscriviti alla newsletter
|
|
Corso Progettazione database11 Maggio 2012 a Milano |
|
|
Amministratore di Reti Windows Server 200811 Giugno 2012 a Milano |
|
Nessun corso previsto |