"ASP.NET 2.0 fornisce classi che permettono di costruire 
applicazioni web integrando la tecnologia delle web parts..." si ok questo 
già lo conosco.
Come spesso accade, però, non sempre basta quello che mamma 
Microsoft rilascia per le nostre innumerevoli esigenze, così capita che ci si 
ritrova a dover "estendere" qualcosina.
Iniziamo a estendere, o meglio "rivedere", il Web Part 
Framework di ASP.NET 2.0 con un bel WebPartManager di casa nostra che si adopera 
per autorizzare o meno le webparts che gli si pareranno dinanzi nella pagina 
web. Nel codice che segue da notare AuthorizationFilter, è una 
proprietà che assume il nostro Custom User Control (o semplicemente uno 
User Control, di cosa possiamo trasformare in Web Part se ne parlerà in un 
prossimo post) ereditando da System.Web.UI.WebControls.WebParts.WebPart 
e permette di specificare, passando una stringa (es. "Administrators, Users, 
PowerUsers,..."), quali ruoli hanno l'autorità di visualizzare la Web Part in 
una pagina.
Facile, quindi, verificare il ruoli abilitati in associazione 
con l'utente corrente
string[] roles = e.AuthorizationFilter.Split(new char[] { ',' });
if (roles.Length > 0)
{
    if (Roles.Enabled)
        isAuthorized = this.RolesManagerIsUserInRoles(roles);
    else
        isAuthorized = this.ContextIsUserInRoles(roles);
}               
ed ecco il listato completo