Szukaj…


Prosta autoryzacja

Autoryzacja w rdzeniu asp.net to po prostu AuthorizeAttribute

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

    public IActionResult Post()
    {
    }
}

Umożliwi to tylko zalogowanemu użytkownikowi dostęp do tych akcji.

lub skorzystaj z poniższych, aby ograniczyć tylko jedno działanie

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

    [Authorize]
    public IActionResult Post()
    {
    }
}

Jeśli chcesz zezwolić wszystkim użytkownikom na dostęp do jednej z akcji, możesz użyć AllowAnonymousAttribute

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

Teraz dostęp do Post może uzyskać każdy użytkownik. AllowAnonymous zawsze ma priorytet w zakresie autoryzacji, więc jeśli kontroler jest ustawiony na AllowAnonymous wszystkie jego działania są publiczne, niezależnie od tego, czy mają AuthorizeAttribute czy nie.

Istnieje możliwość ustawienia wszystkich kontrolerów tak, aby wymagały autoryzowanych żądań -

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

Odbywa się to poprzez dodanie domyślnej zasady autoryzacji do każdego kontrolera - wszelkie atrybuty Authorize / AllowAnonymous na kontroler / akcję AllowAnonymous te ustawienia.



Modified text is an extract of the original Stack Overflow Documentation
Licencjonowany na podstawie CC BY-SA 3.0
Nie związany z Stack Overflow