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 esempi di componenti e si concentra sugli scenari di autorizzazione. Per indicazioni su Pagine e MVC, vedere le risorse seguenti dopo aver letto questo articolo:
- Autorizzazione semplice in ASP.NET Core Pages
- Autorizzazione semplice in ASP.NET Core MVC
attributo
Nelle app specificare l'attributo nella parte superiore di un file di componente (). 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
Usare l'attributo solo sui componenti raggiunti tramite il router. 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 può essere applicato anche a tutti i componenti di un'app o a un subset di componenti in una cartella usando un file (). Aggiungere una direttiva per il namespace e una direttiva per l'attributo:
@using Microsoft.AspNetCore.Authorization
@attribute [Authorize]
L'attributo supporta anche l'autorizzazione basata su ruoli o basata su criteri. Per l'autorizzazione basata sui ruoli, usare il 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 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é né , 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 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
- Autorizzazione semplice in ASP.NET Core Pages
- Autorizzazione semplice in ASP.NET Core MVC