"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