Überprüfung der login-Benutzer AuthorizePolicy in Razor-Seite an Asp.Net Kern
Ich bin auf der Suche nach einer Variante dieses
@if (SignInManager.IsSignedIn(User) && User.IsInRole(Roles.Administrator))
{
<div id="editArticle">
aber anstelle der überprüfung nach der Rolle bin ich nach einem check in die Politik-ähnlich wie in einem controller dies zu tun.
[Authorize(Policy = Policies.RequireAdmin)]
Du musst angemeldet sein, um einen Kommentar abzugeben.
Scheint dies ähnlich zu Frage hier
Beispiele von dieser Seite:
@using Microsoft.AspNetCore.Authorization
und@inject IAuthorizationService AuthorizationService
aswellMit Dot-net core 2.0 AuthorizationService.AuthorizeAsync nicht mehr gibt einen booleschen Wert zurück, es gibt eine AuthorizationResult. Eine funktionierende version für dot net core 2.0 wird so etwas wie dieses:
Daher die komplette Ansicht enthält:
Um es noch prägnanter:
Scheint es
AuthorizeAsync()
erfordert die Ressource-parameter, aber null übergeben werden kann, wie in meinem Beispiel.Wenn du gehst, dies zu nutzen, viele Ansichten, dann solltest du besser bei der Implementierung einer benutzerdefinierten RazorPage:
dann öffnen _ViewImports.cshtml und fügen Sie die nächste Anweisung:
rufen Sie nun HasPolicyAsync() Methode aus jeder beliebigen Ansicht:
Wäre es viel übersichtlicher.