2
respostas

Atributo Authorize com Roles

Pessoal, boa noite.

Em meus estudos com ASP.Net Identity Core permaneço com uma dúvida que nunca consegui esclarecer:

Se no atributo [Authorize(Roles="NomeEstaticoDaRole")] eu devo ter o nome fixo da role, qual sentido faria ter em minha aplicação um CRUD para estas roles já que eu defino isso no atributo via código, bem hard-coded?

2 respostas

Olá Daniel, tudo certo?

Esse modo é bem útil para quando há várias regras diferentes para a mesma classe:

[Authorize(Roles = "Administrator, PowerUser")]
public class ControlPanelController : Controller
{
    public ActionResult SetTime()
    {
    }

    [Authorize(Roles = "Administrator")]
    public ActionResult ShutDown()
    {
    }
}

Neste caso, o Administrator e PowerUser tem acesso ao controller e seus métodos, mas ShutDown() é exclusivo de Administrator.

Com isso você consegue restringir ou liberar o acesso pelos Roles de forma mais simples e direta.

Espero ter ajudado!

Com todo respeito, mas isso eu já sabia. Você escreveu e não respondeu. Quero saber é de tem como definir as roles de forma dinâmica no atributo Authorize, pois as roles poderiam ser criadas em tempo de execução, sem prever quais seriam, por isso não faz sentido fixar elas no meu ponto de vista.