Recherche…


Autorisation simple

L'autorisation dans le noyau asp.net est simplement AuthorizeAttribute

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

    public IActionResult Post()
    {
    }
}

Cela permettra uniquement à un utilisateur connecté d'accéder à ces actions.

ou utilisez ce qui suit pour limiter une seule action

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

    [Authorize]
    public IActionResult Post()
    {
    }
}

Si vous souhaitez autoriser tous les utilisateurs à accéder à l'une des actions, vous pouvez utiliser AllowAnonymousAttribute

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

Maintenant, n'importe quel utilisateur peut accéder à Post . AllowAnonymous toujours une priorité à autoriser, donc si un contrôleur est défini sur AllowAnonymous toutes ses actions sont publiques, qu'elles aient ou non un AuthorizeAttribute .

Il existe une option permettant de configurer tous les contrôleurs pour exiger des requêtes autorisées -

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

Cela se fait en ajoutant une stratégie d'autorisation par défaut à chaque contrôleur - tout attribut Authorize / AllowAnonymous sur un contrôleur / action remplacera ces paramètres.



Modified text is an extract of the original Stack Overflow Documentation
Sous licence CC BY-SA 3.0
Non affilié à Stack Overflow