Partilhar via


Autorização simples no ASP.NET Core

A autorização em ASP.NET Core é controlada pelo atributo [Authorize] e pelos seus vários parâmetros. Na sua forma mais básica, aplicar o atributo [Authorize] a um componente, Razor controlador, ação ou Razor página, limita o acesso a esse componente a utilizadores autenticados.

Este artigo utiliza exemplos de componentes e foca-se em cenários de autorização. Para orientações sobre Páginas e MVC, consulte os seguintes recursos após a leitura deste artigo:

Atributo

Nas aplicações, especifica o atributo no topo de um ficheiro componente (). No exemplo seguinte, apenas utilizadores autenticados podem acessar à página:

@page "/"
@using Microsoft.AspNetCore.Authorization
@attribute [Authorize]

You can only see this if you're signed in.

Importante

Use o atributo apenas nos componentes alcançados pelo router. A autorização é executada apenas como um aspeto do roteamento e não para componentes-filho renderizados numa página. Para autorizar a exibição de partes específicas dentro de uma página, use um componente AuthorizeView, que é descrito em autenticação e autorização do ASP.NET CoreBlazor.

O atributo pode também ser aplicado a todos os componentes de uma aplicação ou a um subconjunto de componentes numa pasta usando um ficheiro (). Adicione uma diretiva para o namespace com uma diretiva para o atributo:

@using Microsoft.AspNetCore.Authorization
@attribute [Authorize]

O atributo também oferece suporte à autorização baseada em função ou política. Para autorização baseada em função, use o parâmetro . No exemplo seguinte, o utilizador só pode aceder à página se tiver o papel de Admin ou Superuser:

@page "/"
@attribute [Authorize(Roles = "Admin, Superuser")]

<p>You can only see this if you're in the 'Admin' or 'Superuser' role.</p>

Para autorização baseada em políticas, use o parâmetro. No exemplo seguinte, o utilizador só pode aceder à página se cumprir os requisitos da Over21política de autorização:

@page "/"
@attribute [Authorize(Policy = "Over21")]

<p>You can only see this if you satisfy the 'Over21' policy.</p>

Se nem nem for especificado, usará a política padrão:

  • Os usuários autenticados (conectados) são autorizados.
  • Os usuários não autenticados (desconectados) não são autorizados.

Quando o usuário não está autorizado e se o aplicativo não personaliza conteúdo não autorizado com o componente, a estrutura exibe automaticamente a seguinte mensagem de fallback:

Not authorized.

Para mais informações sobre autenticação e autorização Blazor, consulte ASP.NET Core Blazor autenticação e autorização.

Use o atributo [AllowAnonymous] para permitir o acesso por utilizadores não autenticados a ações individuais.

@using Microsoft.AspNetCore.Authorization
@attribute [AllowAnonymous]

Para informações sobre como exigir autenticação para todos os utilizadores da aplicação, consulte Crie uma aplicação ASP.NET Core com dados de utilizador protegidos por autorização.

Recursos adicionais