Autorização: o recurso no roteamento de ponto de extremidade é o HttpContext
Ao usar o roteamento de ponto de extremidade no ASP.NET Core 3.1, o recurso usado para autorização é o ponto de extremidade. Essa abordagem foi insuficiente para obter acesso aos dados de rota (RouteData). Anteriormente no MVC, um recurso HttpContext era passado, o que permite o acesso ao ponto de extremidade (Endpoint) e aos dados de rota. Essa alteração garante que o recurso passado para autorização seja sempre HttpContext
.
Versão introduzida
ASP.NET Core 5.0
Comportamento antigo
Ao usar o roteamento de ponto de extremidade e os atributos de middleware de autorização (AuthorizationMiddleware) ou [Autorizar], o recurso passado para autorização é o ponto de extremidade correspondente.
Novo comportamento
O roteamento de ponto de extremidade passa HttpContext
para autorização.
Motivo da alteração
Você pode chegar ao ponto de extremidade por meio de HttpContext
. No entanto, não havia como ir do ponto de extremidade para coisas como os dados de rota. Houve uma perda na funcionalidade do roteamento sem ponto de extremidade.
Ação recomendada
Se o aplicativo usar o recurso de ponto de extremidade, chame GetEndpoint em HttpContext
para continuar acessando o ponto de extremidade.
Você pode reverter para o comportamento antigo com SetSwitch. Por exemplo:
AppContext.SetSwitch(
"Microsoft.AspNetCore.Authorization.SuppressUseHttpContextAsAuthorizationResource",
isEnabled: true);
APIs afetadas
Nenhum