Durante gli ultimi sviluppi ho deciso di utilizzare, per comodità più che altro per la navigazione e il binding di controlli che prevedono il Security trimming quali menu con SiteMap, i membership e role provider di Asp.Net.
Avevo tutto pronto (Nhibernate mi ha aperto gli occhi sulla facilità di gestire, recuperare e maneggiare informazioni), mi sono detto, perché no, mi scrivo i miei bei provider che per la security del sito utilizzano i dati presenti nelle mie tabelle (presenti da tempo immemore e quindi difficilmente sarei riuscito a convincere il cliente ad abbandonare le vecchie strutture dati per proporre quelle utilizzate dai provider Sql per i Roles e i Membership).
Detto fatto, mezza giornata, non di più, di scrittura di codice, interventi minimi sulle tabelle DB (aggiunta delle colonne PasswordSalt e Password, visto che precedentemente esisteva una sola colonna con la password in chiaro) e in men che non si dica funziona tutto !
Devo dire che è stato un lavoro molto interessante, è la prima volta che scrivo un "mio" provider, ho sempre utilizzato quanto mi sono sempre trovato tra le mani e adattato piuttosto le strutture dati al codice e non viceversa (pensavo ci si metteste molto di più).
Il risultato è notevole, adesso ho il mio bel provider per le membership e per i ruoli che utilizza NH per l'accesso alle informazioni di cui ha bisogno.
Se avete un dubbio sul farlo o meno ... fatelo !!!