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 BlazorRazor exemplos de componentes e foca-se em Blazor cenários de autorização. Para orientações Razor sobre Páginas e MVC, consulte os seguintes recursos após a leitura deste artigo:
Atributo [Authorize]
Em aplicações Blazor, especifique o atributo [Authorize] atributo no topo de um ficheiro de componente Razor (.razor). 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 apenas o atributo [Authorize] nos componentes @page acedidos através do router Blazor. 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 [Authorize] atributo pode também ser aplicado a todos os Razor componentes de uma Blazor aplicação ou a um subconjunto de Razor componentes numa pasta usando um ficheiro imports (_Imports.razor). Adicione uma @using diretiva para o Microsoft.AspNetCore.Authorization namespace com uma @attribute diretiva para o [Authorize] atributo:
@using Microsoft.AspNetCore.Authorization
@attribute [Authorize]
O [Authorize] 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 Roles. 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 Policy 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 Roles nem Policy for especificado, [Authorize] 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 Router 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.