di: Francesco Camarlinghi 23 Gennaio 2008
Role Provider è un servizio di ASP.NET, disponibile dalla versione 2.0 del Framework .Net, che permette la gestione dei ruoli.
I ruoli sono gruppi di utenti che condividono gli stessi privilegi all'interno di un sito internet. Ad esempio, in un blog potrebbero essere definiti i ruoli di amministratore, utente registrato ed utente anonimo per mostrare nelle pagine soltanto le funzioni appropriate al gruppo a cui appartiene il visitatore. L'utente deve quindi essere identificato, compito di cui si occupa un altro servizio di ASP.NET, Membership Provider. Membership e Role Provider sono stati progettati, infatti, per lavorare fianco a fianco.
In questo articolo realizziamo un Role Provider personalizzato basato su database SQLite e come Membership Provider utilizziamo quello presentato nell'articolo Un Membership Provider con SQLite, che è utile consultare per maggiori informazioni. Per un'introduzione a SQLite si veda invece l'articolo ASP.NET & SQLite.
I concetti qui esposti possono comunque essere applicati anche ad altri database, come MySql o Oracle, avendo soltanto cura di modificare in modo appropriato il provider ADO.NET utilizzato.
Prima di passare ad analizzare il codice è necessario modificare il file di configurazione dell'applicazione Web aggiungendo la definizione del roleManager all'interno della sezione <system.web>.
Listato 1. Modifica al web.config
<system.web>
[...]
<roleManager defaultProvider="SQLiteRoleProvider" enabled="true" cacheRolesInCookie="true"
cookieName=".ASPROLES" cookieTimeout="30" cookiePath="/" cookieRequireSSL="false" cookieSlidingExpiration="true" cookieProtection="All">
<providers>
<clear/>
<add name="SQLiteRoleProvider" type="Example.SQLiteRoleProvider"
connectionStringName="SQLiteConnString" applicationName="Example" />
</providers>
</roleManager>
[...]
</system.web>
ASP.NET è ora configurato per ignorare il Role Provider predefinito. Al suo posto verrà caricata la classe Example.SQLiteRoleProvider, di cui ci occuperemo tra poco. Tutte le altre impostazioni sono quelle predefinite del Role Provider. Per maggiori informazioni vi invito a consultare la documentazione ufficiale su MSDN.
A questo punto è necessario configurare la stringa di connessione al database.
Listato 2. Dichiarare la strina di connessione
<connectionStrings>
<remove name="SQLiteConnString" />
<add connectionString="Data Source=|DataDirectory|Example.db;"
name="SQLiteConnString" providerName="System.Data.SQLite"
/>
</connectionStrings>
Ho volontariamente omesso, per chiarezza e perché esula dagli scopi di questo articolo, la configurazione del Membership Provider. Per saperne di più, consiglio di leggere l'articolo Un Membership Provider con SQLite.
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
|
|
Amministratore di Reti Windows Server 200820 Febbraio 2012 a Milano |
|
Nessun corso previsto |