Mediante i ruoli, posso decidere cosa può essere o meno fatto da un utente. Per esempio possiamo decidere di far vedere un pezzo di menu solo agli utenti con un certo ruolo. Nel file _Layout.cshtml, nella parte di menu, avremo una voce visibile solo se l’utente ha un ruolo “Admin” :
@if (User.IsInRole("Admin")) { <li>@Html.ActionLink("General Manag., "Index", "DB")</li> }
In questo modo l’utente non si trova il menu che porta alla Action “Index” del Controller “DB”. Però potrebbe sempre conoscere l’indirizzo e digitarlo (http://mysite.com/DB/Index)
Per evitare che l’utente acceda a contenuti protetti, possiamo agire direttamente sul Controller. Per esempio possiamo impedire l’accesso a chi non ha effettuato il login al sito
[Authorize] public class AccountController : Controller {
Oppure, deve aver effettuato l’accesso ed avere un certo Ruolo :
[Authorize(Roles = "Admin")] public class AccountController : Controller {
Per altre informazioni sui permessi, vedi il manuale Microsoft