Sdílet prostřednictvím


Autorizace: Prostředek ve směrování koncového bodu je HttpContext

Pokud používáte směrování koncových bodů v ASP.NET Core 3.1, prostředek použitý k autorizaci je koncový bod. Tento přístup nebyl dostatečný pro získání přístupu ke směrovacím datům (RouteData). Dříve v MVC HttpContext byl předán prostředek, který umožňuje přístup ke koncovému bodu (Endpoint) i ke směrovacím datům. Tato změna zajišťuje, že prostředek předaný autorizaci je vždy .HttpContext

Zavedená verze

ASP.NET Core 5.0

Staré chování

Při použití směrování koncového bodu a atributů autorizačního middlewaru (AuthorizationMiddleware) nebo [Authorize] je prostředek předaný autorizaci odpovídajícím koncovým bodem.

Nové chování

Směrování koncového HttpContext bodu předává autorizaci.

Důvod změny

Ke koncovému bodu se dostanete z objektu HttpContext. Z koncovéhoboduho systému se ale nedá dostat z koncového bodu na data směrování. Došlo ke ztrátě funkčnosti z jiného směrování než koncového bodu.

Pokud vaše aplikace používá prostředek koncového bodu, zavolejte GetEndpoint ho HttpContext , aby pokračovala v přístupu ke koncovému bodu.

Můžete se vrátit ke starému chování pomocí SetSwitch. Příklad:

AppContext.SetSwitch(
    "Microsoft.AspNetCore.Authorization.SuppressUseHttpContextAsAuthorizationResource",
    isEnabled: true);

Ovlivněná rozhraní API

Žádné