133 de 153 pessoas acharam isso útil Quando uma identidade é criada, ela pode pertencer a um ou mais papéis; por exemplo, Tracy pode pertencer aos papéis de Administrador e Usuário, enquanto Scott pode pertencer apenas ao papel de usuário. Como esses papéis são criados e gerenciados depende do armazenamento de suporte do processo de autorização. Os papéis são expostos ao desenvolvedor por meio da propriedade IsInRole na classe ClaimsPrincipal.
A nova identidade pode pertencer a um ou mais papéis, por exemplo, Tracy pode pertencer aos papéis de Administrador e Usuário, e Enquanto Scott pode pertencer apenas ao papel de Usuário. Como esses papéis são criados e gerenciados depende de como o processo de autorização é armazenado. O método IsInRole da classe ClaimsPrincipal fornece aos desenvolvedores como usar o papel.
Adicionando verificações de função Adicionar validação de função
Verificações de autorização baseadas em funções são declarativas – o desenvolvedor as incorpora em seu código, contra um controlador ou uma ação dentro de um controlador, especificando papéis que o usuário atual deve desempenhar Seja membro para acessar o recurso solicitado.
A autenticação baseada em papéis é baseada em reivindicações, que os desenvolvedores incorporam em seu código, atribuindo funções a um controlador ou métodos dentro dele, especificando que os usuários em uma solicitação devem atender aos requisitos correspondentes de membro.
Por exemplo, o código a seguir limitaria o acesso a quaisquer ações no AdministrationController a usuários que sejam membros do grupo de Administradores.
Por exemplo, o código a seguir restringirá qualquer método no AdministrationController para ser usado apenas por ser membro do grupo Administrador.
Você pode especificar múltiplos papéis como uma lista separada por vírgulas;
Você pode adicionar múltiplos papéis atribuídos a uma lista dividida por vírgulas:
Esse controlador só seria acessível para usuários que sejam membros da função HRManager ou da função de Finanças.
O controlador estará acessível apenas para membros do cargo de RHManager ou do cargo de Finanças.
Se você aplicar múltiplos atributos, então um usuário acessando deve ser membro de todos os papéis especificados; o exemplo a seguir exige que o usuário seja membro tanto do papel PowerUser quanto do PanelUsuário.
Se você usar múltiplos atributos, o usuário de acesso deve ser membro de todos os papéis; O exemplo a seguir exige que o usuário seja membro tanto dos papéis PowerUser quanto do ControlPanelUser.
Você pode limitar ainda mais o acesso aplicando atributos adicionais de autorização de função no nível da ação;
Você pode usar atributos adicionais de autorização de função no nível do método para aplicar restrições de uso adicionais;
No snippet de código anterior, membros do papel de Administrador ou do papel PowerUser podem acessar o controlador e a ação SetTime, mas apenas membros do papel de Administrador podem acessar o Ação de Fechamento.
No trecho de código anterior, membros dos papéis Administrador ou PowerUser podem usar os métodos controlador e SetTime, mas apenas membros do papel Administrador podem usar o método ShutDown.
Você também pode bloquear um controle, mas permitir acesso anônimo e não autenticado a ações individuais.
Você também pode bloquear um controlador, mas permitir que usuários anônimos usem métodos separados sem autorização.
Verificações de funções baseadas em políticas Verificações de funções baseadas em políticas
Os requisitos de função também podem ser expressos usando a nova sintaxe de Política, onde um desenvolvedor registra uma política na inicialização como parte da configuração do serviço de Autorização. Isso normalmente é usado no ConfigureServices() no seu arquivo Startup.cs.
Os papéis também podem ser alcançados usando uma nova sintaxe de política, onde os desenvolvedores registram uma política como parte da configuração do serviço de autorização na inicialização. Isso geralmente é adicionado Sartup.cs ao arquivo ConfigureServices().
As políticas são aplicadas usando a propriedade Política no atributo AuthorizeAttribute;
Implemente a política usando a propriedade Policy sobre a propriedade AuthorizeAttribute.
Se você quiser especificar múltiplos papéis permitidos em um requisito, pode especificá-los como parâmetros do método RequireRole;
Se você quiser especificar múltiplos papéis em uma solicitação, pode especificá-los como múltiplos parâmetros do método RequireRole:
seu exemplo autoriza usuários que pertencem às funções de Administrador, PowerUser ou Administrador de Backup.
O usuário autorizado neste exemplo pertencerá às funções de Administrador, Usuário de Suporte ou Administrador de Backup.
Transferido de:O login do hiperlink está visível. |