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
Ottenere un token di accesso per una GitHub App
Le novità di Angular: i miglioramenti alla CLI
Filtering sulle colonne in una QuickGrid di Blazor
Creare alias per tipi generici e tuple in C#
Utilizzare un service principal per accedere a Azure Container Registry
Utilizzare politiche di resiliency con Azure Container App
Utilizzare Tailwind CSS all'interno di React: installazione
Come migrare da una form non tipizzata a una form tipizzata in Angular
Utilizzare il nuovo modello GPT-4o con Azure OpenAI
Utilizzare Azure AI Studio per testare i modelli AI
Utilizzare la versione generica di EntityTypeConfiguration in Entity Framework Core
Generare velocemente pagine CRUD in Blazor con QuickGrid
I più letti di oggi
- Visualizzare contenuti Fullscreen con HTML5
- Leggere e scrivere su cookie tramite Blazor
- Richiamare programmaticamente le operazioni di aggiornamento, eliminazione e inserimento di FormView, DetailsView e GridView
- Realizzare siti sicuri con ASP.NET Web Pages
- Il web control DropDownList di ASP.NET
- Un helper method per replicare un template per ogni proprietà con ASP.NET MVC
- Operazioni di selezione su una DataTable
- Dependency injection in ASP.NET MVC 5 con Ninject
- Aumentare la scalabilità di ASP.NET Core Web API con caching client side
- Accedere con ASP.NET ad un documento XML creato dall'oggetto recordset di ADO e ASP