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 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.

Recursos adicionais