Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
A autorização em ASP.NET Core é controlada pelo atributo [Authorize] e pelos seus vários parâmetros. Na sua forma mais básica, aplicar o atributo [Authorize] a um componente, Razor controlador, ação ou Razor página, limita o acesso a esse componente a utilizadores autenticados.
Este artigo aborda cenários relacionados com aplicações MVC. Para a cobertura principal sobre este assunto, veja Autorização simples em ASP.NET Core.
Atributo
O exemplo seguinte limita access a utilizadores autenticados, especificando o atributo [Authorize]:
[Authorize]
public class AccountController : Controller
{
public ActionResult Login() { ... }
public ActionResult Logout() { ... }
}
O atributo também oferece suporte à autorização baseada em função ou política. Para autorização baseada em função, use o parâmetro . No exemplo seguinte, o utilizador só pode aceder à página se tiver o papel de Admin ou Superuser:
[Authorize(Roles = "Admin, Superuser")]
public class OrderController : Controller
{
...
}
Para autorização baseada em políticas, use o parâmetro. No exemplo seguinte, o utilizador só pode aceder à página se cumprir os requisitos da Over21política de autorização:
[Authorize(Policy = "Over21")]
public class LicenseApplicationController : Controller
{
...
}
Se nem nem for especificado, usará a política padrão:
- Os usuários autenticados (conectados) são autorizados.
- Os usuários não autenticados (desconectados) não são autorizados.
Para aplicar autorização a uma ação em vez do controlador, aplique o atributo à ação. No exemplo seguinte, apenas utilizadores autenticados podem desencadear um logout (chame o método):
public class AccountController : Controller
{
public ActionResult Login() { ... }
[Authorize]
public ActionResult Logout() { ... }
}
Use o atributo [AllowAnonymous] para permitir o acesso por utilizadores não autenticados a ações individuais.
[AllowAnonymous]
Advertência
Para controladores MVC, o atributo contorna as instruções de autorização. Se combinares um ou mais atributos, os atributos são ignorados. Se te candidatares ao nível do controlador:
- Quaisquer requisitos de autorização de atributos no mesmo controlador ou métodos de ação no controlador são ignorados.
- O middleware de autenticação não está em curto-circuito, mas não precisa de ter sucesso.
Para informações sobre como exigir autenticação para todos os utilizadores da aplicação, consulte Crie uma aplicação ASP.NET Core com dados de utilizador protegidos por autorização.