Sök…


Enkel auktorisation

Autorisation i asp.net-kärnan är helt enkelt AuthorizeAttribute

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

    public IActionResult Post()
    {
    }
}

Detta tillåter bara en inloggad användare åtkomst till dessa åtgärder.

eller använd följande för att bara begränsa en enda åtgärd

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

    [Authorize]
    public IActionResult Post()
    {
    }
}

Om du vill tillåta alla användare att komma åt en av åtgärderna kan du använda AllowAnonymousAttribute

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

Nu kan Post nås av alla användare. AllowAnonymous kommer alltid som en prioritering att godkänna, så om en controller är inställd på AllowAnonymous så är alla dess handlingar offentliga, oavsett om de har en AuthorizeAttribute eller inte.

Det finns ett alternativ att ställa in alla controllers att kräva godkända förfrågningar -

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

Detta görs genom att lägga till en standardautorisationspolicy till varje controller - alla Authorize / AllowAnonymous attribut över en controller / åtgärd åsidosätter dessa inställningar.



Modified text is an extract of the original Stack Overflow Documentation
Licensierat under CC BY-SA 3.0
Inte anslutet till Stack Overflow