1
resposta

Perfil de acesso

Poderiam me ajudar a configurar um perfil de acesso? ... Na minha tabela Usuário tem o campo Perfil e eu gostaria de limitar o acesso à determinados perfis. Por exemplo, a pessoa só terá permissão pra fazer um Cadastro de Usuário se o perfil do login for ADMIN.

1 resposta

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!