Autorización simple en ASP.NET Core

La autorización en ASP.NET Core se controla con el atributo [Authorize] y sus distintos parámetros. En su forma más básica, aplicar el atributo [Authorize] a un componente Razor, controlador, acción o Razor Página, limita el acceso a ese componente a los usuarios autenticados.

En este artículo se usan BlazorRazor ejemplos de componentes y se centra en Blazor escenarios de autorización. Para obtener instrucciones de Razor Pages y MVC, consulte los siguientes recursos después de leer este artículo:

atributo [Authorize]

En las aplicaciones Blazor, especifique el atributo [Authorize] al principio de un archivo de componente Razor (.razor). En el ejemplo siguiente, solo los usuarios autenticados pueden access la página:

@page "/"
@using Microsoft.AspNetCore.Authorization
@attribute [Authorize]

You can only see this if you're signed in.

Importante

Usa solo el atributo [Authorize] en los componentes @page a los que se accede a través del enrutador Blazor. La autorización solo se realiza como un aspecto del enrutamiento y no para los componentes secundarios representados dentro de una página. Para autorizar la visualización de elementos específicos dentro de una página, use en su lugar un componente /> /ASP.NET Core autenticación y autorización.

El [Authorize] atributo también se puede aplicar a todos los Razor componentes de una Blazor aplicación o a un subconjunto de componentes de Razor una carpeta mediante un archivo de importación (_Imports.razor). Agregue una directiva @using para el espacio de nombres Microsoft.AspNetCore.Authorization con una directiva @attribute para el atributo [Authorize]:

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

El [Authorize] atributo también admite la autorización basada en roles o basada en directivas. Para la autorización basada en roles, utilice el parámetro Roles. En el ejemplo siguiente, el usuario solo puede acceder a la página si se encuentra en el rol Admin o Superuser.

@page "/"
@attribute [Authorize(Roles = "Admin, Superuser")]

<p>You can only see this if you're in the 'Admin' or 'Superuser' role.</p>

Para la autorización basada en directivas, use el Policy parámetro . En el ejemplo siguiente, el usuario solo puede acceder a la página si cumple los requisitos de la Over21política de autorización:

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

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

Si no se especifica Roles ni Policy, [Authorize] usa la directiva predeterminada:

  • Se autoriza a los usuarios autenticados (con sesión iniciada).
  • Se considera no autorizados a los usuarios no autenticados (cerraron sesión).

Cuando el usuario no está autorizado y si la aplicación no personaliza el contenido no autorizado con el Router componente, el framework muestra automáticamente el siguiente mensaje alternativo:

Not authorized.

Para obtener más información sobre Blazor autenticación y autorización, vea ASP.NET Core Blazor autenticación y autorización.

Use el atributo [AllowAnonymous] para permitir que los usuarios no autenticados accedan a acciones individuales.

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

Para obtener información sobre cómo requerir autenticación para todos los usuarios de la aplicación, consulte Crear una aplicación de ASP.NET Core con datos de usuario protegidos por autorización.

Recursos adicionales