Olá, Flavio!
É recomendável que você utilize sistema de autorização que vem incluso no ASP.NET MVC através do ASP.NET Identity
em vez de criar um controle de acesso customizado.
O perfil de ADMIN deveria ser um "papel", ou "Role" no sistema do ASP.NET Identity. Cada usuário ADMIN deveria estar associado com esse papel (Role).
A partir daí, seus controllers e actions devem conter atributos de autorização para especificar os papéis permitidos.
Por exemplo, se você quiser limitar o controle inteiro para os usuários com papel "Admin":
[Authorize(Roles = "Admin")]
public class MeuController : Controller
Se houver uma action em especial nesse controler que você queira habilitar para todos, logados ou não, você pode ainda proteger o controle inteiro, mas use AllowAnonymous
na action "liberada":
[Authorize(Roles = "Admin")]
public class MeuController : Controller
{
[AllowAnonymous]
public ActionResult ActionLiberada()
{
...
}
}
Ou então você pode adicionar o atributo Authorize
apenas para uma action específica:
[Authorize(Roles = "Admin")]
public ActionResult MinhaActionDeAdmin()
{
...
}
Boa sorte e bons estudos!