Una implementazione per SQLite dei Provider di autenticazione e gestione dei ruoli di ASP.Net.
ASP.NET 2.0 ha portato con se diverse novità per quanto riguarda la gestione dell'autenticazione introducendo i Provider, classi che, scritte appositamente per interfacciarsi a una fonte di dati, mettono a disposizione del programmatore una serie di funzioni standard con cui svolgere compiti comuni e ricorrenti in modo automatizzato. In particolare, le classi astratte MembershipProvider e RoleProvider contengono metodi che possono essere sovrascritti e utilizzati per ottenere informazioni su un determinato utente, eseguirne il login, controllarne le autorizzazioni, ecc.
Un esempio è dato dalle classi SqlMembershipProvider e SqlRoleProvider, che forniscono l'implementazione per i database Microsoft SQL Server.
La potenza di questo sistema, però, non si limita soltanto al suo utilizzo tramite codice, ma si estende fino ai controlli lato server quali Login, CreateUserWizard, ecc., che si preoccupano automaticamente di generare anche il codice HTML necessario.
Ebbene, leggendo l'ottimo articolo SQLite 3.0 Membership and Role Provider for ASP.NET 2.0 di Peter Bromberg, ho deciso di provare a scrivere di persona (basandomi, come Peter, su un esempio contenuto nel SDK del framework .NET) le classi necessarie a far interagire i Providers con un database SQLite. Per accedere al database ho utilizzato la libreria System.Data.SQLite di Robert Simpson.
Quello che vi propongo qui per il download è il risultato, interamente funzionante, che ho ottenuto dopo alcune ore di lavoro. Il file .zip oltre alle classi MSQLiteMembershipProvider.cs e MSQLiteRoleProvider.cs contiene: il database, il file Web.config, una pagina Asp.net con controlli lato server di esempio e un file .txt con le istruzioni SQL necessarie a creare il database.