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.
Uno sviluppatore spesso vuole mostrare, nascondere o modificare un'interfaccia utente in base all'identità utente corrente. È possibile accedere al servizio di autorizzazione all'interno delle viste MVC tramite inserimento delle dipendenze. Per inserire il servizio di autorizzazione in una Razor visualizzazione, usare la @inject
direttiva :
@using Microsoft.AspNetCore.Authorization
@inject IAuthorizationService AuthorizationService
Se si desidera che il servizio di autorizzazione in ogni visualizzazione, inserire la @inject
direttiva nel _ViewImports.cshtml
file della Views
directory. Per altre informazioni, vedere Inserimento di dipendenze in visualizzazioni.
Usare il servizio di autorizzazione inserito per richiamare AuthorizeAsync
nello stesso modo in cui si verificherebbe durante l'autorizzazione basata sulle risorse:
@if ((await AuthorizationService.AuthorizeAsync(User, "PolicyName")).Succeeded)
{
<p>This paragraph is displayed because you fulfilled PolicyName.</p>
}
In alcuni casi, la risorsa sarà il modello di visualizzazione. Richiamare AuthorizeAsync
esattamente come si verificherebbe durante l'autorizzazione basata sulle risorse:
@if ((await AuthorizationService.AuthorizeAsync(User, Model, Operations.Edit)).Succeeded)
{
<p><a class="btn btn-default" role="button"
href="@Url.Action("Edit", "Document", new { id = Model.Id })">Edit</a></p>
}
Nel codice precedente, il modello viene passato come risorsa da considerare per la valutazione dei criteri.
Avviso
Non basarsi sull'attivazione/disattivazione della visibilità degli elementi dell'interfaccia utente dell'app come controllo di autorizzazione esclusivo. Nascondere un elemento dell'interfaccia utente potrebbe non impedire completamente l'accesso all'azione del controller associata. Si consideri ad esempio il pulsante nel frammento di codice precedente. Un utente può richiamare il Edit
metodo di azione se conosce l'URL della risorsa relativa è /Document/Edit/1
. Per questo motivo, il Edit
metodo di azione deve eseguire il proprio controllo di autorizzazione.