The Wire · Showcase
ASPNETCORE TIGHTENS AUTHORIZATION METADATA EVERYWHERE, BLAZOR DEBUGGING EXITS
By RepoJournal · Filed · About .NET
Authorization policies now work consistently across all routing paths, not just endpoint middleware, while Blazor templates drop their deprecated WebAssembly debugging hook.
Authorization metadata handling finally converges across ASP.NET Core. Until now, only AuthorizationMiddleware honored all three kinds of authorization metadata - IAuthorizeData attributes, raw AuthorizationPolicy instances, and IAuthorizationRequirementData [1] [2]. MVC's AuthorizeFilter and other decision points ignored the latter two, creating silent gaps that let unauthorized code through. This patch unifies the model so custom authorization requirements work everywhere you'd expect them to work. On the Blazor side, UseWebAssemblyDebugging ships deprecated [3], with templates no longer emitting it by default. The tooling team flagged this as unnecessary friction for modern debugging workflows. Across the iOS bindings layer, GC-safety fixes land in macios after the HandleSafety test caught hand-written methods that freed objects before native calls completed [4]. The linker work converts Runtime.Arch optimizations to trimmer feature switches instead of IL rewrites [5], letting the trimmer fold dead branches naturally rather than through custom code. Android's trimmable typemap now emits XA4212 diagnostics for custom IJavaObject types that aren't properly rooted [6], closing a gap where the Cecil scanner missed them on the NativeAOT path. MAUI's infrastructure work hardens CI-fix automation and routes AI-agent labels more precisely [7].
Action items
- → Review ASP.NET Core authorization metadata behavior in custom filters and middleware - verify all three metadata types are honored dotnet/aspnetcore [plan]
- → Remove UseWebAssemblyDebugging calls from Blazor templates before next template baseline update dotnet/aspnetcore [plan]
- → Test GC.KeepAlive fixes in macios bindings if you maintain custom iOS interop code dotnet/macios [monitor]
- → Enable AndroidEnableAssemblyStoreDecompressionCache=true in Android release builds to benchmark assembly decompression caching gains dotnet/android [monitor]
References
- [1] Support AuthorizationPolicy and IAuthorizationRequirementData metadata everywhere (#67765) dotnet/aspnetcore
- [2] Support AuthorizationPolicy and IAuthorizationRequirementData metadata everywhere ↗ dotnet/aspnetcore
- [3] [Blazor] Deprecate UseWebAssemblyDebugging and remove it from Blazor templates (#67861) dotnet/aspnetcore
- [4] [src] Fix GC-safety issues in a number of APIs. (#26147) dotnet/macios
- [5] [linker] Convert the Runtime.Arch optimization to a trimmer feature switch. Fixes #26106. ↗ dotnet/macios
- [6] [TrimmableTypeMap] Emit XA4212 for custom IJavaObject types on the trimmable path ↗ dotnet/android
- [7] Agentic-labeler: route AI-agent and platform labels correctly ↗ dotnet/maui