Suche…


Einfache Autorisierung

Die Autorisierung in asp.net core lautet einfach AuthorizeAttribute

[Authorize]
public class SomeController : Controller
{
    public IActionResult Get()
    {
    }

    public IActionResult Post()
    {
    }
}

Dies erlaubt nur einem angemeldeten Benutzer den Zugriff auf diese Aktionen.

oder verwenden Sie die folgenden Anweisungen, um nur eine einzelne Aktion einzuschränken

public class SomeController : Controller
{
    public IActionResult Get()
    {
    }

    [Authorize]
    public IActionResult Post()
    {
    }
}

Wenn Sie allen Benutzern den Zugriff auf eine der Aktionen ermöglichen möchten, können Sie AllowAnonymousAttribute

[Authorize]
public class SomeController: Controller
{
    public IActionResult Get()
    {
    }
    
    [AllowAnonymous]
    public IActionResult Post()
    {
    }
}

Jetzt kann jeder Benutzer auf die Post zugreifen. AllowAnonymous immer Priorität. Wenn also ein Controller auf AllowAnonymous gesetzt ist, AllowAnonymous alle seine Aktionen öffentlich, unabhängig davon, ob sie ein AuthorizeAttribute oder nicht.

Es gibt eine Option, um alle Controller so einzustellen, dass autorisierte Anfragen erforderlich sind.

services.AddMvc(config =>
{
    var policy = new AuthorizationPolicyBuilder()
        .RequireAuthenticatedUser()
        .Build();
    config.Filters.Add(new AuthorizeFilter(policy));
}) 

Dies geschieht durch Hinzufügen einer Standardautorisierungsrichtlinie zu jedem Controller. AllowAnonymous Authorize / AllowAnonymous Attribute über einen Controller / eine Aktion setzen diese Einstellungen außer Kraft.



Modified text is an extract of the original Stack Overflow Documentation
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow