Autorização simples no ASP.NET Core

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

Este artigo usa exemplos de componente BlazorRazor e se concentra em cenários Blazor de autorização. Para orientações sobre Razor Pages e MVC, consulte os seguintes recursos após ler este artigo:

Atributo [Authorize]

Em Blazor aplicativos, especifique o [Authorize] atributo na parte superior de um Razor arquivo de componente (.razor). No exemplo a seguir, somente usuários autenticados podem access a 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] em componentes @page acessados por meio do roteador Blazor. A autorização é realizada apenas como um aspecto do roteamento e não para componentes filho renderizados dentro de uma página. Para autorizar a exibição de partes específicas em uma página, use um componente AuthorizeView, descrito em ASP.NET Core Blazor autenticação e autorização.

O [Authorize] atributo também pode ser aplicado a todos os Razor componentes em um Blazor aplicativo ou a um subconjunto de Razor componentes em uma pasta usando um arquivo de importação (_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 dá suporte à autorização baseada em função ou baseada em política. Para a autorização baseada em funções, use o parâmetro Roles. No exemplo a seguir, o usuário só poderá acessar a página se estiver nos papéis 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ítica, use o Policy parâmetro. No exemplo a seguir, o usuário só poderá acessar a página se atender nos requisitos da política de Over21autorização:

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

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

Se Roles e Policy não forem especificados, o [Authorize] usará a política padrão:

  • Usuários autenticados (conectados) estão autorizados.
  • Usuários não autenticados (não conectados) não estão autorizados.

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

Not authorized.

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

Use o atributo [AllowAnonymous] para permitir acesso a usuários não autenticados a ações individuais.

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

Para obter informações sobre como exigir autenticação para todos os usuários do aplicativo, consulte Criar um aplicativo ASP.NET Core com dados do usuário protegidos por autorização.

Recursos adicionais