Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
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.