Vamos supor que eu tenho outras controllers e eu preciso ter um controle de acesso a partir apenas de um login realizado, eu preciso criar uma Politica e configurar ela igual foi feita para IdadeMinina?
Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
Vamos supor que eu tenho outras controllers e eu preciso ter um controle de acesso a partir apenas de um login realizado, eu preciso criar uma Politica e configurar ela igual foi feita para IdadeMinina?
Oi Gustavo, tudo bem?
Para controlar o acesso a outras controllers com base em um login realizado, você pode criar uma política de autorização e configurá-la da mesma forma que foi feita para a idade mínima.
Primeiro, você precisa definir a política de autorização no ConfigureServices do arquivo Startup.cs. Você pode fazer isso adicionando o seguinte código:
services.AddAuthorization(options =>
{
options.AddPolicy("AcessoControllerPolicy", policy =>
{
policy.RequireAuthenticatedUser();
});
});
Aqui, estamos criando uma política chamada "AcessoControllerPolicy" que requer um usuário autenticado. Você pode personalizar essa política de acordo com suas necessidades.
Em seguida, você precisa aplicar essa política à controller desejada. Para fazer isso, você pode usar o atributo [Authorize] na classe da controller ou em um método específico. Por exemplo:
[Authorize(Policy = "AcessoControllerPolicy")]
public class OutraController : Controller
{
// código da controller
}
Dessa forma, a política de autorização será aplicada à controller "OutraController" e apenas usuários autenticados terão acesso a ela.
Lembre-se de que você também precisa garantir que a autenticação esteja configurada corretamente em sua aplicação, como a configuração do JWT Bearer Token mencionada no contexto.
Um abraço e bons estudos.