di: Francesco Camarlinghi 23 Gennaio 2008
Il metodo CreateRole() si occupa invece di creare un nuovo ruolo.
Listato 6. CreateRole()
public override void CreateRole(string rolename)
{
if (rolename.IndexOf(",") > 0)
throw new ArgumentException("Role names cannot contain commas.");
if (RoleExists(rolename))
throw new ProviderException("Role name already exists.");
SQLiteConnection conn = new SQLiteConnection(connectionString);
SQLiteCommand cmd = new SQLiteCommand("INSERT INTO " + rolesTable +
" (Rolename, ApplicationName) " + " Values(?, ?)", conn);
cmd.Parameters.Add("@Rolename", DbType.String, 255).Value = rolename;
cmd.Parameters.Add("@ApplicationName", DbType.String, 255).Value = ApplicationName;
try
{
conn.Open();
cmd.ExecuteNonQuery();
}
catch (SQLiteException e) { throw e; }
finally { conn.Close(); }
}
Dopo aver controllato che il nome del nuovo ruolo sia valido (non contiene virgole e non è già presente nel database), vengono creati gli oggetti SQLiteConnection e SQLiteCommand necessari. L'interrogazione viene anche in questo caso gestita all'interno di un blocco try-catch-finally. Questa funzione non restituisce alcun valore. Nel caso che il nome del ruolo non sia valido o si presenti qualche errore durante le operazioni sul database viene restituita un'eccezione.
È bene sottolineare che data la semplice gestione degli errori utilizzata nel codice d'esempio, questa si rende necessaria a livelli di codice più alti. È infatti preferibile non mostrare mai all'utente messaggi di errore interni, soprattutto per quanto riguarda servizi di autenticazione e gestione dei privilegi quali Membership e Role Provider.
Non ho volutamente analizzato la funzione Initialize(), molto importante in quanto si preoccupa di caricare le impostazioni dal file web.config, perché molto simile a quella già trattata per il Membership Provider, da cui differisce soltanto per i dati caricati.
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 |