Una delle tecniche con cui ci si è dovuti sempre scontrare nello sviluppo di applicazioni o semplici web part in Windows Sharepoint Services 2.0 era quella dell'impersonation. Avere cioè del codice, lanciato da utenti "reader", o comunque con permessi limitati, da far eseguire con permessi da amministratore.
Ora, nella versione 3.0 dei services, è stato aggiunto un metodo alla classe SPSecurity che risolve tutti i problemi che erano legati allo sviluppo a mano dell'impersonation. Il metodo (statico) di cui sto parlando è il metodo RunWithElevatedPrivileges; questo fa si che il codice inserito all'interno di un delegato, che deve essergli passato come parametro, venga eseguito con permessi "elevati", cioè come se fosse un utente amministratore ad eseguirlo.
Vediamo ora come utilizzarlo:
SPSecurity.RunWithElevatedPrivileges(delegate()
{
SPSite site = new SPSite("http://localhost/Administration");
SPWeb web = site.OpenWeb();
SPList lista = web.Lists["AdminTask"];
//... });
A mio parere è veramente d'aiuto.. Anche perchè può essere utilizzato sia all'interno di singole web part o web part pages che all'interno di event handler personalizzati.