Auktorisering: Resursen i slutpunktsroutning är HttpContext
När du använder slutpunktsroutning i ASP.NET Core 3.1 är den resurs som används för auktorisering slutpunkten. Den här metoden var otillräcklig för att få åtkomst till routningsdata (RouteData). Tidigare i MVC skickades en HttpContext resurs in, vilket ger åtkomst till både slutpunkten (Endpoint) och routningsdata. Den här ändringen säkerställer att resursen som skickas till auktoriseringen alltid HttpContext
är .
Version introducerad
ASP.NET Core 5.0
Gammalt beteende
När du använder slutpunktsroutning och attributen auktorisering mellanprogram (AuthorizationMiddleware) eller [Auktorisera] är den resurs som skickas till auktoriseringen den matchande slutpunkten.
Nytt beteende
Slutpunktsroutning skickar HttpContext
till auktorisering.
Orsak till ändringen
Du kan komma till slutpunkten från HttpContext
. Det gick dock inte att komma från slutpunkten till saker som routningsdata. Det uppstod en funktionsförlust från icke-slutpunktsroutning.
Rekommenderad åtgärd
Om din app använder slutpunktsresursen anropar GetEndpoint du HttpContext
för att fortsätta att komma åt slutpunkten.
Du kan återgå till det gamla beteendet med SetSwitch. Till exempel:
AppContext.SetSwitch(
"Microsoft.AspNetCore.Authorization.SuppressUseHttpContextAsAuthorizationResource",
isEnabled: true);
Berörda API:er
Ingen