Autorizzazione a livello di controller in ASP.NET MVC

ASP.NET MVC consente di sfruttare pienamente l'infrastruttura di security di ASP.NET. Da web.config, infatti, si può attivare la forms authentication nello stesso modo utilizzato per le web forms:

<authentication mode="Forms"> 
  <forms loginUrl="~/Account/LogIn" /> 
</authentication> 

Una possibile implementazione della action di LogIn è quella contenuta nell'applicazione di esempio del template ASP.NET MVC di Visual Studio. Tramite l'utilizzo dell'action filter Authorize, si possono impostare le regole di sicurezza desiderate sul controller o sulla singola action da proteggere:

[Authorize] 
public class SecureController : Controller 
{ 
    public ActionResult Index() 
    { 
        return View(); 
    } 
}

In questo caso, ad esempio, tutte le action di SecureController potranno essere invocate solo da un utente autenticato, mentre un anonimo verrà automaticamente rimandato alla pagina di login. Se necessario, è possibile restringere le autorizzazioni solo ad alcuni utenti o ad alcuni ruoli specifici:

[Authorize(Roles = "administrator")] 
public ActionResult CriticalAction() 
{ 
    return View(); 
}