Come sappiamo, tramite l'attributo Authorize, possiamo attivare la protezione a livello di action o di controller, così che solo chi è autenticato (o è in possesso del ruolo indicato) possa effettivamente utilizzarle. Alle volte, per ragioni di sicurezza o di comodità, può essere necessario applicare la logica opposta, rendendo disponibile l'intero sito agli utenti autenticati, e sbloccando solo alcune determinate operazioni (come la pagina di login o di registrazione) per gli utenti anonimi, secondo una logica di white listing.
Questa funzionalità è stata introdotta in ASP.NET MVC 4 grazie alla classe AllowAnonymousAttribute, che serve a marcare un controller o una action come pubblica:
[AllowAnonymous] public ActionResult SignIn() { // .. altro codice qui .. }
In questo modo, non ci resta che proteggere l'intero controller o addirittura tutto il sito, registrando per esempio il filtro Authorize tra i global filter:
public class FilterConfig { public static void RegisterGlobalFilters(GlobalFilterCollection filters) { filters.Add(new HandleErrorAttribute()); filters.Add(new GlobalAuthorize()); } }
Come possiamo facilmente immaginare, il vantaggio di questo approccio è sicuramente la comodità, visto che ci consente di scrivere meno codice, ma soprattutto la sicurezza, in quanto non corriamo il rischio di lasciare "sguarnite" alcune sezioni del sito semplicemente per aver dimenticato di marcarle opportunamente.
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Utilizzare gli snapshot con Azure File shares
Miglioramenti nelle performance di Angular 16
Eseguire operazioni sui blob con Azure Storage Actions
Effettuare lo stream della risposta in ASP.NET Core tramite IAsyncEnumerable
Semplificare il deployment di siti statici con Azure Static Web App
Gestire liste di tipi semplici con Entity Framework Core
Implementare il throttling in ASP.NET Core
Effettuare il deploy di immagini solo da container registry approvati in Kubernetes
Generare file PDF da Blazor WebAssembly con iText
Ottenere il contenuto di una cartella FTP con la libreria FluentFTP
Copiare automaticamente le secret tra più repository di GitHub
Come migrare da una form non tipizzata a una form tipizzata in Angular
I più letti di oggi
- ASP.NET Core Identity 8: è rivoluzione?
- Tutorial ASP.NET Dynamic Data Control
- Accesso dai dati con Entity Framework 7
- Utilizzare la classe XmlDataDocument per leggere un Feed RSS
- Microsoft Security Bulletin MS08-067
- Le novità di ASP.NET 4.5
- Mostrare tutti i cookie creati in fase di debug
- MIX 2011: Tutte le novità dei tool di ASP.NET MVC 3
- Usare il sensore di luminosità ambientale nelle Universal App