4

Got Hilfe von diesem Artikel:Anspruch basierte Autorisierung für mehrere Ansprüche in Asp.net Kern

https://docs.microsoft.com/en-us/aspnet/core/security/authorization/policies

ich versuchte, einige Richtlinien für mein Handeln zu schaffen, aber in einigen Aktionen mag ich mehrere Richtlinien haben, und wenn der Benutzer entweder von ihnen hat, können sie den Zugriff auf Aktionen des Controllers haben:

[Authorize(Policy = "CanAccessMenu1")] 
    [Authorize(Policy = "CanAccessMenu2")] 
public async Task<IActionResult> ActionFroMultiplePolicies([FromBody] ActionRequest request) 
     { 
//.............. 
} 

wie kann ich diese Politik zusammenführen? kann ich sowas benutzen?

[autorisiert (Policy = "CanAccessMenu1, CanAccessMenu2")]

In diesem Fall, vielleicht muß ich einige Änderungen in diesen Korrekturfunktionen haben. Aber ich habe keine Ahnung, dass:

Protected override async Task HandleRequirementAsync(AuthorizationHandlerContext context, CanAccessRequirement requirement) 
     { 
     } 

Vielen Dank für jede Hilfe

Antwort

0

Nicht so, wie Sie wollen; Richtlinien sind so konzipiert, dass sie kumulativ sind. Wenn Sie beispielsweise zwei separate Attribute verwenden, müssen beide übergeben werden.

Sie müssen OR-Bedingungen innerhalb einer einzelnen Richtlinie auswerten. Aber Sie müssen es nicht als ORs innerhalb eines einzelnen Handlers codieren. Sie können eine Anforderung mit mehr als einem Handler haben. Wenn einer der Handler den Erfolg signalisiert, ist die Anforderung erfüllt. Siehe Schritt 6 in Blowdarts Authoriation Workshop.

Verwandte Themen