Compartilhar via


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 e se concentra em cenários de autorização. Para obter as diretrizes de Páginas e MVC, consulte os seguintes recursos depois de ler este artigo:

Atributo

Em aplicativos, especifique o atributo na parte superior de um arquivo de componente (). 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 em componentes atingidos por meio do roteador. 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 atributo também pode ser aplicado a todos os componentes em um aplicativo ou a um subconjunto de componentes em uma pasta usando um arquivo (). Adicione uma diretiva para o namespace com uma diretiva para o atributo:

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

O 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 . 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 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 e não forem especificados, o 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 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