Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
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.