Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
L'autorizzazione in ASP.NET Core viene controllata con l'attributo [Authorize] e i relativi vari parametri. Nel formato più semplice, applicando l'attributo [Authorize] a un componente Razor, controller, azione o pagina Razor, limita l'accesso a quel componente agli utenti autenticati.
Questo articolo usa BlazorRazor esempi di componenti e si concentra sugli Blazor scenari di autorizzazione. Per indicazioni su Razor Pagine e MVC, vedere le risorse seguenti dopo aver letto questo articolo:
- Razor
- Autorizzazione semplice in ASP.NET Core MVC
Attributo [Authorize]
Nelle app Blazor, specificare l'[Authorize] attributo all'inizio di un file di componente Razor (.razor). Nell'esempio seguente solo gli utenti autenticati possono accedere alla pagina.
@page "/"
@using Microsoft.AspNetCore.Authorization
@attribute [Authorize]
You can only see this if you're signed in.
Importante
Utilizzare [Authorize] attributo solo nei componenti @page raggiunti tramite il router Blazor. L'autorizzazione viene eseguita solo come aspetto del routing e non per i componenti figlio di cui viene eseguito il rendering all'interno di una pagina. Per autorizzare la visualizzazione di parti specifiche all'interno di una pagina, usare invece un componente AuthorizeView, descritto in ASP.NET Core Blazor autenticazione e autorizzazione.
L'attributo[Authorize] può essere applicato anche a tutti i Razor componenti di un'app Blazor o a un subset di Razor componenti in una cartella usando un file di importazione (_Imports.razor). Aggiungi una direttiva @using per il namespace Microsoft.AspNetCore.Authorization con una direttiva @attribute per l'[Authorize]attributo:
@using Microsoft.AspNetCore.Authorization
@attribute [Authorize]
L'attributo supporta anche l'autorizzazione [Authorize] basata su ruoli o basata su criteri. Per l'autorizzazione basata sui ruoli, usare il Roles parametro . Nell'esempio seguente l'utente può accedere alla pagina solo se si trova nel ruolo 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>
Per l'autorizzazione basata su criteri, usare il Policy parametro . Nell'esempio seguente, l'utente può accedere alla pagina solo se soddisfa i requisiti del criterio di autorizzazione Over21authorization policy:
@page "/"
@attribute [Authorize(Policy = "Over21")]
<p>You can only see this if you satisfy the 'Over21' policy.</p>
Se non viene specificato né Roles né Policy , [Authorize] usa i criteri predefiniti:
- Gli utenti autenticati (connessi) sono autorizzati.
- Gli utenti non autenticati (non collegati) non sono autorizzati.
Quando l'utente non è autorizzato e se l'app non personalizza il contenuto non autorizzato con il Router componente, il framework visualizza automaticamente il messaggio di fallback seguente:
Not authorized.
Per altre informazioni sull'autenticazione e l'autorizzazione di Blazor, vedere ASP.NET Core Blazor autenticazione e autorizzazione.
Usare l'attributo [AllowAnonymous] per consentire access da utenti non autenticati alle singole azioni:
@using Microsoft.AspNetCore.Authorization
@attribute [AllowAnonymous]
Per informazioni su come richiedere l'autenticazione per tutti gli utenti dell'app, vedere Creare un'app ASP.NET Core con i dati utente protetti dall'autorizzazione.
Risorse aggiuntive
- Razor
- Autorizzazione semplice in ASP.NET Core MVC