Roles.AddUserToRole è davvero ciò che cerco per soddisfare le mie esigenze. Penso di aver bisogno di memorizzare i ruoli utente in sessio, vero?
NO! L'aggiunta dell'utente ai ruoli significa che il provider collegherà l'utente al ruolo. Poiché hai già collegato l'utente, questa è una direzione inutile.
memorizzare quei ruoli in qualche modo in modo da poter visualizzare controlli e collegamenti in base alla loro appartenenza al ruolo
Perché hai bisogno di farlo? A livello di pagina, puoi impostare la sicurezza ASP.NET con rifilature in modo da poter escludere automaticamente le pagine dalla visualizzazione dell'utente se non sono nel ruolo corretto. Per quanto riguarda sezioni/controlli/ecc, puoi verificare se un utente HA un ruolo e quindi determinare se visualizzarlo o meno. Se utilizzi le sezioni, molte di queste operazioni possono essere eseguite in modo dichiarativo anziché programmatico.
L'unico avvertimento è ciò che supporta il tuo provider di abbonamento. I provider "pronti all'uso" (Access e SQL Server) supportano le rifiniture di sicurezza e la sintassi dichiarativa per l'esclusione di sezioni di una pagina, ecc. Se il provider MySQL implementa completamente tutti i metodi, dovresti anche usarlo bene . Se crei un provider personalizzato, ci sono alcune parti che devi implementare per far funzionare le cose.
La storia breve è che una volta che prendi un membro Utente (autentica la persona), avrai accesso al fatto che la persona abbia un ruolo o meno. Tutto ciò fa parte dell'implementazione standard di un provider di appartenenze in .NET. Finché il provider che stai utilizzando per MySQL copre tutti gli stessi metodi, puoi eseguire una rapida ricerca su Google e trovare tonnellate di siti che mostrano come mostrare/nascondere i bit in base ai ruoli.